2016-01-31 72 views
1

我有一個簡單的應用程序試圖完成: //列出所有的SD卡文件名在一個txt文件中。無法在存儲根目錄中創建文件?

我已經嘗試了至少在根存儲目錄中創建文件但沒有運氣的許多方法(不在應用程序私有文件中使用「getFilesDir()」),並且其中一種方法顯示在代碼示例。 是的,我用適當的權限。

任何幫助將非常感激。

String path = Environment.getExternalStorageDirectory().getAbsolutePath(); 
    File file = new File(path, "Something.txt"); 
    file.mkdirs(); 

    String[] array = file.list(); 

    try { 

     FileOutputStream fos = new FileOutputStream(file, true); 
     OutputStreamWriter osw = new OutputStreamWriter(fos); 
     osw.write(String.valueOf(array)); 
     osw.close(); 

    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
+0

它是如何失敗?例如,任何堆棧跟蹤打印? – SOFe

回答

0

挖掘和周圍位打後,

事實證明,我忘了叫「fos.close()」,而不僅僅是「osw.close()」

以及調用「 file.createNewFile()「是強制性的,」mkdirs()「由於某種原因不起作用。

但是,感謝大家,所有的參與和努力都表示讚賞。

1

如果您書面方式向外部存儲添加此permisions到您的清單文件:[文章]

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

acording這個[1]

+0

我忘了提及添加的權限。 –

+0

你想在哪裏寫文件,內部或外部存儲? – Stanojkovic

+0

外部存儲,SD卡本身,使用戶可以從任何簡單的文件管理器訪問文件。 –

0

你需要調用osw.close ();爲要創建的文件。

+0

哦,是的,謝謝你的注意,我也忘了它..但仍然沒有運氣:( –

相關問題