2012-10-18 2 views
9

Sto provando a eseguire il backup di alcuni file utilizzando la classe .NET 4.5 ZipFile e il metodo CreateFromDirectory (string, string). Ricevo una eccezione non autorizzata: accesso negato. Posso leggere con successo tutti i file in quella directory e scrivere un file in quella directory. Quindi penserei che le autorizzazioni siano impostate correttamente. Qualche idea sul motivo per cui ottengo l'accesso negato nella classe ZipFile?System.IO.Compression.ZipFile Non autorizzatoAccessException

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

} 

risposta

16

Sembra che tu abbia frainteso qualcosa.

backupLocation = @"C:\Backups"; 

si desidera sovrascrivere la directory "C: \ Backup" con un file di ! Non è permesso! ;-) (Accesso negato)

È necessario specificare il percorso con il nome del file.
Sintassi: CreateFromDirectory (string, string)

public static void CreateFromDirectory(
    string sourceDirectoryName, 
    string destinationArchiveFileName 
) 

Esempio:

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

Hai assolutamente ragione! Non posso credere di averlo trascurato. Grazie per l'aiuto. – jmac

+0

che può succedere nella fretta mai ;-) –

+0

Divertente, ha lo stesso identico errore per la stessa identica ragione ... Quindi se può confortarti, non sei solo amico mio MrGreen – ssougnez

0

Nel mio caso stavo cercando di creare la directory di destinazione, prima ho iniziato a comprimere il file lì, ma era creando la directory di destinazione come nome del file zip, così perché il file zip vuoto esisteva già (come directory), ho ottenuto lo stesso errore.

0

Il problema può sorgere anche quando esiste già una cartella con lo stesso nome dello zip (di uscita)

Problemi correlati