I am trying to zip a file with DotNetZip library. I am reading path from a file and saving zip to that file. But program crashes and throws. This is my code:
using (ZipFile zip = new ZipFile())
{
zip.AddDirectory(dir + "\\OUTPUT_FOLDERS");
StreamReader sr = new StreamReader(dir + "\\Tools\\SettingsForPath");
string path = sr.ReadToEnd();
sr.Close();
zip.Save(path + "\\SavedZip.zip");
Directory.Delete(dir + "\\OUTPUT_FOLDERS", true);
}
and here is my error:
System.UnauthorizedAccessException: Access to the path 'C:\Users\DotNetZip-nvan5kb5.tmp' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode)
at Ionic.Zip.SharedUtilities.CreateAndOpenUniqueTempFile(String dir, Stream& fs, String& filename)
at Ionic.Zip.ZipFile.get_WriteStream()
at Ionic.Zip.ZipFile.Save()
at Ionic.Zip.ZipFile.Save(String fileName)
You are trying to write to the C:\Users
directory, and you don't have permission to do that.
Use Path.GetTempPath()
to obtain the name of directory where you can write.
See http://msdn.microsoft.com/en-us/library/system.io.path.gettemppath.aspx for more information.
You would use it as follows:
using (ZipFile zip = new ZipFile())
{
zip.TempFileFolder = System.IO.Path.GetTempPath();
// etc.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With