C# podstawy - system IO

0

Cześć Wam, mam problem z poniższym kodem. Nie działa tak jak powinien. Otrzymuję informację, że plik nie istnieje, ale niestety plik ten się nie tworzy. Gdy usunę instrukcję return z miejsca gdzie wypisuję info, że plik nie istnieje to mam pustą konsolę. Ogólnie zamotałem się w tym. Pomoże mi ktoś zrozumieć ten kod?

namespace ConsoleApp119
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length < 1)
            {
                Console.WriteLine("Wywolanie programu: Program Plik");
                return;
            }
            String plik = args[0];
            FileInfo fi;

            try
            {
                fi = new FileInfo(plik);
            } catch (ArgumentException)
            {
                Console.WriteLine("Nazwa {0} zawiera nieprawidlowe znaki", plik);
                return;
            }


            if(!fi.Exists)
            {
                Console.WriteLine("Plik {0} nie istnieje", plik);
                
            }
            FileStream fs;
            try
            {
                fs = fi.Create();
            } catch(Exception)
            {
                Console.WriteLine("Plik {0} nie moze byc utworzony", plik);
                return;
            }
        }
    }
}

0

Poprawiłem kod i w tym przypadku nie wykrywa mi pliku do usunięcia. Nazwę przekazuję w Debug w Visual Studio. Wiecie może gdzie jest błąd?

namespace ConsoleApp120
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length < 1)
            {
                Console.WriteLine("Wywolanie programu: program plik");
                return;
            }
            String plik = args[0];
            FileInfo fi;

            try
            {
                fi = new FileInfo(plik);
            }
            catch (ArgumentException)
            {
                Console.WriteLine("Nazwa {0} zawiera nieprawidlowe znaki.", plik);
                return;
            }

            if (!fi.Exists)
            {
                Console.WriteLine("Plik {0} nie istnieje", plik);
                return;
            }
            try
            {
                fi.Delete();
            }
            catch(Exception)
            {
                Console.WriteLine("Plik {0} nie moze zostac usuniety", plik);
            }
            Console.WriteLine("Plik {0} zostal usuniety", plik);

        }
    }
}
0

A pod jaką ścieżka masz ten plik który chcesz usunąć i jaka ścieżkę podajesz do args?

0
GotowanaKukurydza napisał(a):

A pod jaką ścieżka masz ten plik który chcesz usunąć i jaka ścieżkę podajesz do args?

Screen:
screenshot-20200821164621.png
screenshot-20200821164715.png

0
  1. Czy dodałeś biblioteki IO?
  2. Czy plik znajduje się w tym samym miejscu, w którym masz plik wykonywalny?

Tutaj jest to objaśnione w (według mnie) prosty sposób:

0

Podaj pełną ścieżkę do pliku, bo inaczej doklei Ci katalog roboczy aplikacji.

0
Afish napisał(a):

Podaj pełną ścieżkę do pliku, bo inaczej doklei Ci katalog roboczy aplikacji.

Podałem.
C:/cs/file24

0

Wpisz pełną nazwę pliku. file24 ma pewnie jakieś rozszerzenie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1