2012-10-18 10 views
9

मैं .NET 4.5 ZipFile क्लास और CreateFromDirectory (स्ट्रिंग, स्ट्रिंग) विधि का उपयोग करके कुछ फ़ाइलों का बैकअप लेने का प्रयास कर रहा हूं। मुझे एक अनधिकृत एक्सेस प्राप्त हो रहा है - एक्सेस अस्वीकृत। मैं उस निर्देशिका में सभी फ़ाइलों को सफलतापूर्वक पढ़ सकता हूं और साथ ही उस निर्देशिका में एक फ़ाइल लिख सकता हूं। तो मुझे लगता है कि अनुमतियां ठीक से स्थापित की गई हैं। 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(); 

} 

उत्तर

16

ऐसा लगता है कि आपने कुछ गलत समझा है। एक फ़ाइल साथ:

backupLocation = @"C:\Backups"; 

आप निर्देशिका "\ बैकअप सी" अधिलेखित करना चाहते हैं! इसकी अनुमति नहीं है! ;-) (एक्सेस अस्वीकृत)

आपको फ़ाइल नाम के साथ पथ निर्दिष्ट करना होगा।
सिंटेक्स: CreateFromDirectory (स्ट्रिंग, स्ट्रिंग)

public static void CreateFromDirectory(
    string sourceDirectoryName, 
    string destinationArchiveFileName 
) 

उदाहरण:

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

आप बिल्कुल सही हैं! मुझे विश्वास नहीं है कि मैंने इसे अनदेखा किया है। आपकी सहायता के लिए धन्यवाद. – jmac

+0

जो कभी भी घूमने में हो सकता है ;-) –

+0

मजेदार, सटीक उसी कारण के लिए एक ही त्रुटि मिली ... तो अगर यह आपको सांत्वना दे, तो आप अकेले मेरे दोस्त नहीं हैं :- डी – ssougnez

0

मेरे मामले में मैं, लक्ष्य निर्देशिका बनाने के लिए इससे पहले कि मैं वहाँ फ़ाइल ज़िप करने शुरू कर दिया कोशिश कर रहा था, लेकिन था लक्ष्य निर्देशिका को ज़िप फ़ाइल के नाम के रूप में बनाना, इसलिए क्योंकि खाली ज़िप फ़ाइल पहले से मौजूद है (निर्देशिका के रूप में), मुझे एक ही त्रुटि मिली है।

0

समस्या भी पैदा होती है सकते हैं जब एक ही नाम का एक फ़ोल्डर के रूप में (उत्पादन) जिप पहले से मौजूद है

संबंधित मुद्दे