2012-03-15 50 views
0
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_WORLD_READABLE); 
fos.write(string.getBytes()); 
fos.close(); 

當試圖刪除這些文件中的一個,這就是我所用,但它返回false。在Android中編寫文件時,我的目錄是什麼?

String tag = v.getTag().toString(); 
File file = new File(System.getProperty("user.dir")+"/"+tag); 
String s = new Boolean (file.exists()).toString(); 
Toast.makeText(getApplicationContext(), s, 1500).show(); 
file.delete(); 

我該如何克服這個問題?

回答

3

您當前的工作目錄。

爲了幫助診斷問題,請使用file.getAbsolutePath()看到的完整路徑。

它也可能是一個權限問題,如果你想從其他應用程序進行刪除。如果是這樣,您可能需要更改爲MODE_WORLD_WRITEABLE(不安全),或重新構建代碼,以便創建和刪除由同一個應用程序調用。

編輯:這主要是不正確。我沒有意識到openFileOutput沒有使用當前的工作目錄。

嘗試刪除
+0

是什麼Android應用程序的默認工作目錄? – 2012-03-15 04:29:55

+0

哦,是什麼,我如何設置工作目錄,或者我在哪裏可以找到我目前的工作目錄? – Marc 2012-03-15 04:29:57

+1

/data/data/$ package_name/files – idiottiger 2012-03-15 04:33:30

1

使用相同內容的文件名「」變量在你的第一個片段的第二片段。

+0

除非'FILENAME'是絕對路徑,否則這是行不通的。 – 2012-03-15 05:17:03

0
String RootDir = Environment.getExternalStorageDirectory() 
       + File.separator + "Video"; 
     File RootFile = new File(RootDir); 
     RootFile.mkdir(); 

      FileOutputStream f = new FileOutputStream(new File(RootFile, "Sample.mp4")); 

我用這個代碼來保存視頻文件到非默認的位置。希望這對你有用。默認情況下它是存儲在SD卡中

對於每個應用程序,Android系統創建一個「數據/數據/應用程序包」目錄。 文件被保存在「文件」文件夾,在這個目錄

下更改默認的目錄上面的代碼將被用於

可以使用fileobject.getAbsolutePath顯示工作目錄的默認()

相關問題