檔案系統相關操作:FileSystem
- FileSystem介面提供各項檔案基本操作,部分可對應於基本 Java File類別行為。
- 於 Srping 環境注入 FileSystem 即可使用。
基本操作
基本 copy、move、touch 等操作,當目標路徑的上層目錄不存在時,會自動建立相關目錄。
// 使用實作:FileUtils.copyFile(srcFile, destFile)
void copyTo(LogicalFile, LogicalFile)
// 1. srcFile.renameTo(destFile), false)
// 2. copyTo and deleteOld : 原始檔案無法順利刪除時,回傳 FALSE。
// 新檔案無法建立時,抛 LogicalIOException
// moveTo 成功,回傳 TRUE。
boolean moveTo(LogicalFile, LogicalFile)
// return true, 執行結束後,指定的file不存在(不論是被刪除、或原本就沒有檔案)
// false, 執行結束後,指定的file仍存在(刪不掉、或是非空目錄)
void quietDelete(LogicalFile)
// * 更新檔案時間或建立空檔。
// 使用實作:FileUtils.touch(srcFile);
void touch(LogicalFile)
// return true, 執行成功
// false, 指定 LogicalFile 已存在實際檔案。
boolean mkdirs(LogicalFile)
基本資訊
boolean isDirectory(LogicalFile)
boolean isFile(LogicalFile)
// 單層,無遞迴列舉
<F extends LogicalFile<F>> List<F> listFiles(LogicalFile)
檔案檢核碼
對現有檔案內容做 hash,以供安全性驗證。
// 以指定的 HashMode 計算,建議使用SHA256,並回傳。
// createFile : true , 將結果寫入到原始檔案再增加一個附檔名 (.sha256/.md5/...) 的檔案中。
String generateChecksum(LogicalFile, HashMode, boolean createFile)
// 驗證(需有checksum檔案, 如*.*.sha256)
boolean checksum(LogicalFile, HashMode)
// 驗證
boolean checksum(LogicalFile, HashMode, String hashcode)
實際JAVA檔案對應 : LogicalFileMapper
第三方元件必須傳入 Java File 時使用。
public interface LogicalFileMapper {
// 預設在操作時,會建立上層目錄。
default File toRealFile(final LogicalFile<?> file) {
return this.toRealFile(file, true);
};
File toRealFile(LogicalFile<?> file, boolean makeParents);
}