plik - odmowa dostępu

0

mam kod w którym sprawdzam bieżącą lokalizację:

file=new File(".");
System.out.println( file.getAbsolutePath());

ale wyrzuca on błąd:
Exception in thread "main" java.io.FileNotFoundException: . (Odmowa dostępu)

próbowałem uruchamiać program jako administrator, na windowsie, nie pomaga

0

Ścieżka projektu javy:

String workingDir = System.getProperty("user.dir");

no a jak masz plik w projekcie to wiesz jaka jest do niego ścieżka

0

jak próbuję otworzyć swój plik, to pisze że nie został odnaleziony , dlatego sprawdzam w ten sposób

0

Dlaczego plik nie został znaleziony?
Bo go nie ma.
Wczytaj plik z rozszerzeniem

File file = new File("someFile.txt");

Lub jeśli plik znajduje się gdzie indziej niż w folderze z projektem to wcześniej podaj jego ścieżkę.

File.class to jest tylko abstrakcyjna reprezentacja jakiegoś pliku. Pamiętaj o tym.

0

poza tym jeśli nie trzeba go korzystaj z java.nio. Path, masz też klasy utilsowe Paths i Files.
Zamiast tworzyć FIleInput/OutputStreama korzystaj z Files.newInputStream(...)/Files.newOutputStream(...) - @Wibowit gdzies wstawiał linka czemu klasyczny FIS/FOS są rakotwórcze

0
scibi92 napisał(a):

Zamiast tworzyć FIleInput/OutputStreama korzystaj z Files.newInputStream(...)/Files.newOutputStream(...) - @Wibowit gdzies wstawiał linka czemu klaczy FIS/FOS są rakotwórcze

Artykuł (pod dwiema lokacjami gdyby jedna przestała działać):
https://www.cloudbees.com/blog/fileinputstream-fileoutputstream-considered-harmful
https://dzone.com/articles/fileinputstream-fileoutputstream-considered-harmful

0
Nadziany Kot napisał(a):

mam kod w którym sprawdzam bieżącą lokalizację:

file=new File(".");

...
Exception in thread "main" java.io.FileNotFoundException: . (Odmowa dostępu)

próbowałem uruchamiać program jako administrator, na windowsie, nie pomaga

Pomijając Javę, kropka to bardzo szczególny plik. Nie jest to między innymi "bieżąca lokalizacja" a "bieżacy otwarty katalog na dysku X:".
Warto tu pomyślec po windowsowemu, zostawiając Linuxy

0
Nadziany Kot napisał(a):

mam kod w którym sprawdzam bieżącą lokalizację:

file=new File(".");
System.out.println( file.getAbsolutePath());

Ja też tak zawsze sprawdzam. Choć daję raczej File("x"). Ale mogą być jak widać środowiska, w których nie ma bieżącej ścieżki, albo brak do niej uprawnień. Na produkcji nie możesz polegać na czymś takim. Zrób jakąś konfigurację, w której będzie podawana ścieżka bezwzględna. Nie korzystaj z bieżącej ścieżki. Swoją drogą powiedz, co to za środowisko, ciekawym.

0

File.class to jest tylko abstrakcyjna reprezentacja jakiegoś pliku. Pamiętaj o tym.

To ważne. Ta abstrakcja jest dość specyficzna, ni to plik leżący sobie spokojnie na dysku, ni to plik otwarty, W moim osobistym rankingu zajmuje drugie miejsce po "starej" Date i Calendar, oczywiście od tyłu.
ZTW nie za bardzo powtarza się w innych językach, i programiści wielojęzyczni mam wrażenie nieco rzadziej palcują 'File'

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