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

網路磁碟備份提示空間不足:配額與權限兩大隱形殺手

     編輯:程式設計疑難解答

現象:網路磁碟可用 10 TB,C# 程式複製幾十 MB 資料夾卻報「磁碟空間不足」。

真相:不是物理空間,是**使用者配額**或**權限**

原因現象驗證指令
使用者配額單一 AD 帳號/配額模板限制 (如 1 GB),超過即報錯檔案總管 → 網路磁碟右鍵 → 屬性 → 配額 / `fsutil quota query X:`
寫入權限不足服務帳號/應用程式集區身分識別無 `Write`/`Modify` 權限ICACLS X:\Backup /grant "IIS AppPool\MyApp":(OI)(CI)M
單檔大小限制FAT32 4GB、某些 NAS 單檔限制檢查檔案系統格式、NAS 設定
路徑過長> 260 字元導致 `DirectoryNotFoundException` 被誤判為空間不足啟用 Win10/Server 2016+ 長路徑支援 `fsutil behavior set disablelastaccess 1`

C# 程式碼防禦性寫法


try {
    Directory.CreateDirectory(destDir);
    foreach (var file in Directory.GetFiles(srcDir, "*", SearchOption.AllDirectories)) {
        string destFile = Path.Combine(destDir, file.Substring(srcDir.Length + 1));
        File.Copy(file, destFile, true);
    }
} catch (IOException ex) when (ex.HResult == -2147024784) { // 0x80070070 DISK_FULL
    Log.Error("磁碟空間不足(含配額): " + ex.Message);
    throw new UserFriendlyException("備份失敗:您的網路磁碟配額已滿,請清理或聯繫 IT 調整配額。");
} catch (UnauthorizedAccessException ex) {
    Log.Error("權限不足: " + ex.Message);
    throw new UserFriendlyException("備份失敗:無寫入權限,請聯繫 IT 開啟寫入權限。");
}

排查清單

  1. 以該服務帳號登入伺服器,手動在網路磁碟建立檔案測試。
  2. 查詢配額:`fsutil quota query Z:` (需管理員)。
  3. 檢查 NAS/檔案伺服器端配額設定 (每用戶/每共享)。
  4. 確認防毒軟體未即時掃描鎖定檔案導致寫入失敗 (排除備份目錄)。

遇到「明明有空間卻報不足」,先查 **配額** 再查 **權限**,通常在這兩者之一。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved