FileOutputStream, własna ścieżka, FileNotFoundException

0

Na forum:

Hej, mam w aplikacji export do pdfa z podaną na sztywno ścieżką eksportu. Wygląda ona tak:

 new FileOutputStream(context.getExternalFilesDir(null).toString() + "/dokument.pdf");

Chciałbym umożliwić użytkownikowi ręczne wpisanie ścieżki. Problem w tym, że wtedy wyskakuje błąd

 FileNotFoundException: i tutaj scieżka

To jest o tyle dziwne, że nawet jeśli wpisze się dokładnie to samo, więcej: nawet jeśli pobierze się wartość z tego co jest przekazane do FileOutpuStream do Stringa i potem tego Stringa da jako argument,

new FileOutputStream(string)

to wyrzuca ten błąd i nie chce poprawnie eksportować. Dlaczego tak się dzieje? Przecież ścieżka to ścieżka.

0

Może stwórz najpierw new File() ze ścieżką a potem a potem daj mkdirs() na niej.

0

Wiesz co.. Nie zadziałało tak. Udało mi się w trochę inny sposób. Nie mam pojęcia dlaczego się tak dzieje, ale jak rozbiłem ścieżkę i nazwę pliku na dwa osobne EditTexty to przeszło. Teraz mam po prostu tak, że w jednym okienku podaje się folder docelowy a w drugim nazwę pliku. Tak chociaż działa :)

EDIT: A tak swoją drogą istnieją jakieś kontrolki do wyboru katalogu? Chodzi mi o coś takiego co pozwalało by wybrać katalog widząc całą strukturę pamięci.

0

No i dalszy ciąg problemów.
W sumie sprawa wygląda tak, że nie we wszystkich katalogach mogę stworzyć plik.

W tej lokalizacji jest OK

 /storage/emulated/0/Android/data/com.example.pawe.drab/files/plik.sql

Ale gdy chce np zapisać go tutaj:

/storage/emulated/0/plik.sql

mam błąd

  open failed: EACCES (Permission denied)

Domyślam się, że to może coś w pliku AndroidManifest. Będę wdzięczny za każdą pomoc :)

0
 <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/>

Lub:

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Od Androida 6 musisz jeszcze dodać odpowiedni kod przed zapisem, który ma zapytać użytkownika o pozwolenie.

0

Niestety nie działa.
Foldery od

 /storage/emulated/0/Android/data

w górę są niedostępne :(

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