2012-01-17 70 views
1

所以我想在android上的外部存儲上保存一些數據。我已經看過這個API所在的位置getExternalStoragePublicDirectory(String type) 「如果需要,此方法將創建相應的目錄。」 這些是默認目錄:音樂,播客,鈴聲,警報,通知,圖片,電影,下載。所以我的問題是:Android:使用getExternalStoragePublicDirectory(字符串類型)在外部存儲器上寫入

  1. 如何創建我自己的新目錄?
  2. 如何讓用戶看不見?這樣用戶不會對額外的文件夾感到沮喪。

回答

6

您可以使用coder_For_Life22的回答有關創建的文件夾,然後使其「更看不見」的用戶,你可以做到以下幾點:

  1. 將它命名爲以點開頭。例如「.yourappname」
  2. 將一個空文件「.nomedia」放入您的文件夾中。這可以防止媒體掃描器記錄您在該文件夾中的文件。
+1

恭維我的好答案 – 2012-01-17 02:39:42

6

你可以做這樣的事情,讓你的應用程序目錄

String pathToExternalStorage = Environment.getExternalStorageDirectory().toString(); 
File appDirectory = new File(pathToExternalStorage + "/" + "AppName"); 
// have the object build the directory structure, if needed. 
appDirectory.mkdirs(); 

現在,這是android的文檔說,創建於外部存儲自定義目錄..

如果你想保存不是特定於您的應用程序的文件,並且在卸載應用程序時不應刪除這些文件,而是將它們保存到外部存儲器上的一個公用目錄中。這些目錄位於外部存儲器的根目錄,如Music /,Pictures /,Ringtones /等。

編輯:

使用Context.getDir(字符串名稱,INT模式)方法來創建或訪問的目錄中的內部存儲。從文檔報價:

檢索,創建如果需要的話,一個新的目錄中,應用程序 可以將自己的定製數據文件。您可以使用返回的文件 對象來創建和訪問此目錄中的文件。請注意,通過File對象創建的文件 只能由您自己的 應用程序訪問;您只能設置整個目錄的模式,而不是 個別文件。

例子:

File mydir = context.getDir("mydir", Context.MODE_PRIVATE); //Creating an internal dir, set it to private so its only visible to our application; 
+0

我確實想要保存不是特定於應用程序的文件不應該被刪除的應用程序被卸載,但事情是,我將如何使它對用戶不可見,以便用戶不會意外刪除它。 – sammiwei 2012-01-17 01:13:22

+1

我在代碼中創建的文件夾對用戶是可見的。您可以將它命名爲「AppName」的所有位置。所有Enviroment.getExternalStorageDirectory()都會獲取到外部存儲的路徑。 – 2012-01-17 01:18:29

+0

我明白了,但如果用戶不訪問代碼,該文件夾對用戶不可見,對嗎? – sammiwei 2012-01-17 02:11:16

相關問題