首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android createTempFile 產生隨機檔名:正確建立指定前綴的暫存檔

     編輯:程式設計綜合問答

現象

呼叫 File.createTempFile(prefix, suffix, dir) 產生的檔名為 prefix123456789suffix,中間夾帶隨機數字,非預期的固定名稱。

原因

createTempFile **保證檔名唯一**,會在前綴與後綴之間插入隨機字串,**前綴僅作前綴**,不作完整檔名。

解決:自行建立檔案

File dir = new File(Environment.getExternalStorageDirectory(), "MyApp/Images");
if (!dir.exists()) dir.mkdirs();

String fileName = "image_" + title + "_" + val + ".jpg";
File photo = new File(dir, fileName);
// 確保父目錄存在
photo.getParentFile().mkdirs();
// 若檔案已存在可自行處理(覆蓋/改名)
if (photo.exists()) {
    // 可選:刪除舊檔或加時間戳
    photo.delete();
}

比較

方法檔名格式唯一性保證適用場景
createTempFileprefixXXXXXXsuffix系統保證真正暫存檔、快取、無需固定名稱
new File(dir, name)自訂完整名稱需自行處理衝突使用者可見檔案、需固定命名規則

最佳實務

  • 使用者可見的媒體檔案(照片、下載)請用有意義的固定名稱(含時間戳、UUID)。
  • 內部快取、臨時處理檔案用 createTempFile,結束後刪除。
  • Android 10+ 共享儲存請改用 MediaStore 插入,由系統管理檔名與路徑。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved