我正在尝试使用.NET 4.5String类和CreateFromDirectory( ZipFile,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();
}发布于 2012-10-18 22:03:05
看起来你误会了什么。
backupLocation = @"C:\Backups";您希望用文件覆盖备份目录 "C:\Backups“。这是不允许的!;-) (拒绝访问)
您必须使用文件名指定路径。
字符串语法:CreateFromDirectory(,string)
public static void CreateFromDirectory(
string sourceDirectoryName,
string destinationArchiveFileName
)示例:
string startPath = @"c:\example\start";
string zipPath = @"c:\example\result.zip";
ZipFile.CreateFromDirectory(startPath, zipPath);
[...]发布于 2014-05-30 20:58:53
在我的示例中,我在开始压缩文件之前尝试创建目标目录,但创建的目标目录是zip文件的名称,因此因为空的zip文件已经存在(作为目录),所以我得到了相同的错误。
发布于 2017-04-14 20:43:44
当已存在与(输出) zip同名的文件夹时,也会出现此问题
https://stackoverflow.com/questions/12955907
复制相似问题