檔案系統相關操作: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);
}

results matching ""

    No results matching ""