2017-04-17 61 views
-3

我目前正在與內部存儲。我想創建多個文件夾,如mainFolder/subFolder/fileName。創建嵌套文件夾到內部存儲

我已經準備了很多的教程,我不會找到最好的解決方案..而且我也收到錯誤java.io.FileNotFoundException:打開失敗:EISDIR(是一個目錄)。

我的查詢語句

  • 這是什麼錯誤? 任何人都可以請說明這個
  • 如何在內部存儲器中創建文件夾。
+0

您正在使用運行權限?郵政編碼 – fillobotto

+2

打開失敗...您嘗試打開某個文件作爲文件,但它是一個目錄...不言自明,但請顯示代碼 –

+0

「這是什麼錯誤?」 - 您正試圖在目錄而不是文件上執行某些文件操作。既然你拒絕提供[mcve],我們不能更具體。 「如何在內部存儲中創建文件夾」 - 使用標準的Java I/O。在'Context'上使用'getFilesDir()'來獲得你所說的'mainFolder /',並從那裏創建子目錄。(例如'File subdir = new File(getFilesDir(),「subFolder」); subdir.mkdirs(); ')。除了'getFilesDir()'部分之外,這與使用其他Java環境中的目錄並無太大區別。 – CommonsWare

回答

0

做這樣的:

字符串folder_main = 「NewFolder」;

File f = new File(Environment.getExternalStorageDirectory(), folder_main); 
if (!f.exists()) { 
    f.mkdirs(); 
} 

如果你想創建另一個文件夾成:

File f1 = new File(Environment.getExternalStorageDirectory() + "/" + folder_main, "product1"); 
if (!f1.exists()) { 
    f1.mkdirs(); 
} 
+0

我想創建內部只有不是外部存儲。 –

+0

它也可以在內部存儲中工作。檢查它 –

+0

感謝您寶貴的答覆,但不起作用。 –

1

最後我得到了這方面的一個

要創建嵌套文件夾

//保存內部存儲

File myMainDir = context.getDir("MainFolder", Context.MODE_PRIVATE); 

File mySubjectDir = new File(myMainDir, "subFolder"); 
mySubjectDir.mkdir(); 

File myModuleDir = new File(mySubjectDir, "semiSubFolder"); 
myModuleDir.mkdir(); 

File myFinalDir = new File(mySubjectDir, "fileName.mp4"); 

// Save External Storage 

String DNAME = "MainFolder"+"/"+subFolder+"/"+semiSubFolder; 
File rootPath = new File(Environment.getExternalStorageDirectory().toString(), DNAME); 
if(!rootPath.exists()) { 
    rootPath.mkdirs(); 
} 

if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { 
    Log.v("Cannot use storage","Cannot use storage"); 
} 

File myFinalDir = new File(rootPath,"fileName.mp4"); 
相關問題