C# podstawy - system IO

C# podstawy - system IO
GV
  • Rejestracja:ponad 4 lata
  • Ostatnio:7 miesięcy
  • Postów:32
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?

Kopiuj
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;
            }
        }
    }
}

edytowany 1x, ostatnio: greg_vv
GV
  • Rejestracja:ponad 4 lata
  • Ostatnio:7 miesięcy
  • Postów:32
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?

Kopiuj
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);

        }
    }
}
GK
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 2 lata
  • Postów:44
0

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

GV
  • Rejestracja:ponad 4 lata
  • Ostatnio:7 miesięcy
  • Postów:32
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

NI
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:15
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:

AF
  • Rejestracja:prawie 18 lat
  • Ostatnio:około miesiąc
0

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

GV
  • Rejestracja:ponad 4 lata
  • Ostatnio:7 miesięcy
  • Postów:32
0
Afish napisał(a):

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

Podałem.
C:/cs/file24

K5
  • Rejestracja:ponad 10 lat
  • Ostatnio:12 miesięcy
  • Postów:141
0

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

GV
W sumie nie musi mieć rozszerzenia, to tak na szybko żeby przetestować. Naprawiłem problem - musiałem wejść w Working Directory i zaznaczyć folder zawierający plik. Już wszystko gra.
Mondonno
@greg_vv Tylko tak wrzuce że komentarz to nie miejsce do udzielania odpowiedzi :D

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.