首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.IO.Compression.ZipFile UnauthorizedAccessException

System.IO.Compression.ZipFile UnauthorizedAccessException
EN

Stack Overflow用户
提问于 2012-10-18 21:31:15
回答 4查看 11.6K关注 0票数 13

我正在尝试使用.NET 4.5String类和CreateFromDirectory( ZipFile,string)方法备份一些文件。我收到一个UnauthorizedAccessException -访问被拒绝。我可以成功地读取该目录中的所有文件,也可以将文件写入该目录。因此,我认为权限设置是正确的。关于为什么我在ZipFile类上被拒绝访问有什么想法吗?

代码语言:javascript
复制
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();

}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-18 22:03:05

看起来你误会了什么。

代码语言:javascript
复制
backupLocation = @"C:\Backups";

您希望用文件覆盖备份目录 "C:\Backups“。这是不允许的!;-) (拒绝访问)

您必须使用文件名指定路径。

字符串语法:CreateFromDirectory(,string)

代码语言:javascript
复制
public static void CreateFromDirectory(
    string sourceDirectoryName,
    string destinationArchiveFileName
)

示例:

代码语言:javascript
复制
 string startPath = @"c:\example\start";
 string zipPath = @"c:\example\result.zip";
 ZipFile.CreateFromDirectory(startPath, zipPath);
 [...]
票数 23
EN

Stack Overflow用户

发布于 2014-05-30 20:58:53

在我的示例中,我在开始压缩文件之前尝试创建目标目录,但创建的目标目录是zip文件的名称,因此因为空的zip文件已经存在(作为目录),所以我得到了相同的错误。

票数 1
EN

Stack Overflow用户

发布于 2017-04-14 20:43:44

当已存在与(输出) zip同名的文件夹时,也会出现此问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12955907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档