檔案之獲取資料夾路徑 data data

2022-05-21 08:15:23 字數 1670 閱讀 2151

應用程式在執行的過程中如果需要向手機上儲存資料,一般是把資料儲存在sdcard中的。

大部分應用是直接在sdcard的根目錄下建立乙個資料夾,然後把資料儲存在該資料夾中。

這樣當該應用被解除安裝後,這些資料還保留在sdcard中,留下了垃圾資料。

如果你想讓你的應用被解除安裝後,與該應用相關的資料也清除掉,該怎麼辦呢?

通過context.getexternalfilesdir()方法可以獲取到 sdcard/android/data/你的應用的包名/files/ 目錄,一般放一些長時間儲存的資料

通過context.getexternalcachedir()方法可以獲取到 sdcard/android/data/你的應用包名/cache/目錄,一般存放臨時快取資料

如果使用上面的方法,當你的應用在被使用者解除安裝後,sdcard/android/data/你的應用的包名/ 這個目錄下的所有檔案都會被刪除,不會留下垃圾資訊。

而且上面二個目錄分別對應 設定->應用->應用詳情裡面的」清除資料「與」清除快取「選項

總結一下android 中的幾種目錄:

一、 files

1. context.getfilesdir(),該方法返回/data/data/youpackagename/files的file物件。

2. context.openfileinput()與context.openfileoutput(),只能讀取和寫入files下的檔案,返回的是fileinputstream和fileoutputstream物件。

3. context.filelist(),返回files下所有的檔名,返回的是string物件。

4. context.deletefile(string),刪除files下指定名稱的檔案。

5. context.getexternalfilesdir()方法可以獲取到   sdcard/android/data/youpackagename/files/ 目錄,一般放一些長時間儲存的資料

二、cache

1. context.getcachedir(),該方法返回   /data/data/youpackagename/cache的file物件,這個檔案裡面的資料在裝置記憶體不足的時候,會被系統刪除資料。注意:你不能依賴系統幫你刪除這些檔案,當這個資料夾裡面的資料超過1mb的時候,系統會刪除這個資料夾裡面的資料。

2. context.getexternalcachedir()方法可以獲取到    sdcard/android/data/youpackagename/cache/目錄,一般存放臨時快取資料

三、custom dir

getdir(string name, int mode),返回    /data/data/youpackagename/ 下的指定名稱的資料夾file物件,如果該資料夾不存在則用指定名稱建立乙個新的資料夾。

建立檔案的許可權

mode_private:說明該檔案只能被當前的應用程式所讀寫

mode_world_readable:該檔案的內容可以被其他的應用程式所讀取

mode_world_writeable:該檔案的內容可以被其他的應用程式所讀、寫

C 獲取資料夾路徑和資料夾包含檔案列表

folderbrowserdialog用來選擇資料夾 folderbrowserdialog dialog new folderbrowserdialog dialog.showdialog 之後才會開啟資料夾選擇框。dialog.selectedpath是選擇的資料夾的完整路徑 directory...

VC獲取指定資料夾路徑

vc獲取指定資料夾路徑 flyfish 2010 3 5 一 使用shell函式 1 獲取應用程式的安裝路徑 tchar buf max path shgetspecialfolderpath null,buf,csidl program files,null afxmessagebox buf 2...

delphi之選擇資料夾路徑 選擇檔案路徑

一 opendialog選擇檔案路徑 procedure tform4.but2click sender tobject varchobak topendialog begin chobak topendialog.create nil if chobak.execute then begin sh...