Dot-Net

System.IO.Compression.ZipFile UnauthorizedAccessException

  • January 21, 2022

我正在嘗試使用 .NET 4.5 ZipFile 類和 CreateFromDirectory(string, string) 方法備份一些文件。我收到 UnauthorizedAccessException - 拒絕訪問。我可以成功讀取該目錄中的所有文件以及將文件寫入該目錄。所以我認為權限設置正確。關於為什麼我在 ZipFile 類上被拒絕訪問的任何想法?

static void Main(string[] args)
{
   string backupLocation = @"C:\Backups";
   string directoriesToBackup = @"F:\myMedia\myPictures\Our Family\2012\Misc";

   try
   {
       ZipFile.CreateFromDirectory(directoriesToBackup, backupLocation);
   }
   catch (System.UnauthorizedAccessException e) 
   {
       Console.WriteLine(e.Message);
   }

   DirectoryInfo di = new DirectoryInfo(@"F:\myMedia\myPictures\Our Family\2012\Misc");
   File.Create(@"F:\myMedia\myPictures\Our Family\2012\Misc\testCreateFromVs.txt");
   foreach (FileInfo i in di.GetFiles())
   {
       Console.WriteLine(i.Name);
   }

   Console.ReadKey();

}

看來你誤會了什麼。

backupLocation = @"C:\Backups";

你想用一個文件覆蓋****目錄“C:\Backups” !這是不允許的!;-) (拒絕訪問)

您必須使用文件名指定路徑。

語法: CreateFromDirectory(string,string)

public static void CreateFromDirectory(
   string sourceDirectoryName,
   string destinationArchiveFileName
)

例子:

string startPath = @"c:\example\start";
string zipPath = @"c:\example\result.zip";
ZipFile.CreateFromDirectory(startPath, zipPath);
[...]

引用自:https://stackoverflow.com/questions/12955907