2012-10-18 23 views
9

Tôi đang cố sao lưu một số tệp bằng lớp .NET 4.5 ZipFile và phương thức CreateFromDirectory (chuỗi, chuỗi). Tôi nhận được một UnauthorizedAccessException - Truy cập bị từ chối. Tôi có thể đọc thành công tất cả các tập tin trong thư mục đó cũng như ghi một tập tin vào thư mục đó. Vì vậy, tôi sẽ nghĩ rằng các điều khoản được thiết lập đúng cách. Bất kỳ suy nghĩ về lý do tại sao tôi nhận được quyền truy cập bị từ chối trên lớp ZipFile?System.IO.Compression.ZipFile UnauthorizedAccessException

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(); 

} 

Trả lời

16

Có vẻ như bạn đã hiểu nhầm điều gì đó.

backupLocation = @"C:\Backups"; 

bạn muốn ghi đè lên thư mục "C: \ Backups" với một tập tin ! Điều đó không được phép! ;-) (Truy cập bị từ chối)

Bạn phải chỉ định đường dẫn có tên tệp.
Cú pháp: CreateFromDirectory (string, string)

public static void CreateFromDirectory(
    string sourceDirectoryName, 
    string destinationArchiveFileName 
) 

Ví dụ:

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

Bạn hoàn toàn đúng! Tôi không thể tin rằng tôi đã bỏ qua điều đó. Cảm ơn bạn đã giúp đỡ. – jmac

+0

có thể xảy ra trong các cuộc đua bao giờ ;-) –

+0

Hài hước, có cùng một lỗi chính xác vì lý do chính xác ... Vì vậy, nếu nó có thể an ủi bạn, bạn không phải một mình người bạn của tôi :-D – ssougnez

0

Trong trường hợp của tôi, tôi đã cố gắng để tạo ra các thư mục đích trước khi tôi bắt đầu để nén các tập tin đó, nhưng là tạo thư mục đích là tên của tệp zip, vì vậy vì tệp zip trống đã tồn tại (dưới dạng một thư mục), tôi đã gặp lỗi tương tự.

0

Sự cố cũng có thể phát sinh khi một thư mục có cùng tên với (đầu ra) zip đã tồn tại

Các vấn đề liên quan