呼叫 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();
}
| 方法 | 檔名格式 | 唯一性保證 | 適用場景 |
|---|---|---|---|
createTempFile | prefixXXXXXXsuffix | 系統保證 | 真正暫存檔、快取、無需固定名稱 |
new File(dir, name) | 自訂完整名稱 | 需自行處理衝突 | 使用者可見檔案、需固定命名規則 |
createTempFile,結束後刪除。MediaStore 插入,由系統管理檔名與路徑。