2012-12-19 11 views

Odpowiedz

13

Nie użyjesz mkdirs(), chyba że chcesz utworzyć każdy z tych folderów w strukturze. Nie dodawaj dodatkowego slasha na końcu łańcucha i sprawdź, czy to działa.

Na przykład

final File newFile = new File("/mnt/sdcard/test"); 
newFile.mkdir(); 
+2

Próbowałem z 2 ukośnikami na końcu i to działa, dziękuję! – arts777

+0

Nie ma "/ mnt/sdcard", która wskazuje na prawdziwy sdcard na wszystkich urządzeniach z systemem Android (KitKat). Próbowałem również sztuczki dwóch ukośników na końcu z "/ storage/external_SD/Android/data//files/dummy //" i teraz tworzy pliki katalogów, które są widoczne w systemie Windows, ale manekin jest nadal plik. Z ES3 oba są katalogami. Wystarczająco dobre dla mnie :)) – Zekitez

0

spróbować użyć

String rootPath=Environment.getExternalStorageDirectory().getAbsolutePath()+"/test/"; 
      File file=new File(rootPath); 
if(!file.exists()){ 
file.mkdirs(); 
} 
0

Przede wszystkim nie należy używać ścieżki pliku z "/ mnt/sdcard/test", może to powodować pewne problemy z niektóre telefony z Androidem. Zamiast tego należy użyć:

public final static String APP_PATH_SD_CARD = "/Test"; 

String fullPath = Environment.getExternalStorageDirectory().getAbsolutePath() + APP_PATH_SD_CARD; 

Tworzy pusty plik, ponieważ dodano myślnik.

Teraz, że masz ścieżka użyć następującego kodu:

try { 
    File dir = new File(fullPath); 
    if (!dir.exists()) { 
     dir.mkdirs(); 
    } 
} 
catch(Exception e){ 
    Log.w("creating file error", e.toString()); 
} 
+0

>> Przede wszystkim nie powinieneś używać ścieżki pliku z "/ mnt/sdcard/test" >> Jest OK, ponieważ jest to przykładowy kod. W rzeczywistości jest to część menedżera plików i próbuję utworzyć katalog ze ścieżką zdefiniowaną przez użytkownika. Tak więc nie używam zakodowanej na stałe ścieżki "/ mnt/sdcard /" w prawdziwym kodzie. – arts777

+0

W takim razie wystarczy. – Max

7

Kiedy należy się upewnić, że wszystkie katalogi dla pliku istnieje, ale mam tylko filepath - zrobić

new File(FileName.substring(0,FileName.lastIndexOf("/"))).mkdirs(); 
Powiązane problemy