2014-07-22 190 views
0

我可以創建和使用下面的代碼共享一個.txt文件:爲什麼.txt文件不保存在內部存儲器中?

File path = new File(Environment.getExternalStorageDirectory(), "Folder"); 
if (!path.exists()) { 
    path.mkdirs(); 
} 

File exportFile = new File(path, fileName); 
FileWriter writer = new FileWriter(exportFile); 
writer.append(body); 
writer.flush(); 
writer.close(); 

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_SEND); 
intent.setType("text/plain"); 
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(exportFile)); 
startActivity(intent); 

但是我想這個文件被保存到應用程序的文件夾,而不是在SD卡上直接,所以我改成下面的代碼。它似乎沒有工作,因爲它不會創建該文件,我嘗試導出的任何應用程序都無法看到該文件。

File path = new File(this.getFilesDir(), "exports"); 
if(!path.exists()){ 
    path.mkdir(); 
} 

任何想法?我嘗試過的每件事都行不通。該文件應該保存在Android/data/[package name]文件夾中?

編輯:好吧,我不能得到這個工作,但實際上發現這不是我想要使用的方法,我想保存在Android /數據文件夾中的文件和我需要使用:

getExternalFilesDir(null) 
+0

您正在使用的文件的構造函數解釋「出口」作爲文件名,而不是文件夾名稱中寫。不知道這是否會導致您的問題。 – crocboy

回答

0

檢查

ContextWrapper contextWrapper = new ContextWrapper(context); 
File file = contextWrapper.getDir("media", Context.MODE_PRIVATE); 

,並且確保你是否有必要的權限在manifest文件

0
  1. 爲您在AndroidManifest.xml中
  2. 檢查權限的目錄可用性
  3. 檢查外部存儲
  4. 檢查文件名的可用性。它不能包含空格
  5. 檢查的權限,以便能夠在該文件夾
相關問題