【问题标题】:Granting full permissions to everyone on newly created folder from within c#从 C# 中向每个人授予对新创建文件夹的完全权限
【发布时间】:2013-01-23 19:10:36
【问题描述】:

我正在从 URL 列表中保存图像,但尝试在本地复制文件夹结构。

我解析 URL 以提供我想要的文件夹结构:

例子:

URL =  www.site.com/images/folder1/folder2/image

我的本​​地基础文件夹是mydocs/site/images 我拆分了 url 字符串,并能够使用以下方法递归地创建正确的文件夹结构:

 if (!Directory.Exists(finalLocalFolder))
    {
        DirectoryInfo di = Directory.CreateDirectory(finalLocalFolder);
    }

一切都很好,直到我尝试使用以下方法将图像保存到文件夹:

    WebClient webClient = new WebClient();
    webClient.DownloadFile(remoteUrl, finalLocalFolder);

在这种情况下,我被告知访问该文件夹被拒绝。

"System.UnauthorizedAccessException: 访问路径 'mydocs\images\test\test1\test\2\3m' 被拒绝。”

所以我猜我需要在 CREATEDIRECTORY 区域中创建一个步骤,在该区域中我会立即授予对该文件夹的访问权限。

有没有简单的方法可以做到这一点?

【问题讨论】:

  • 这很奇怪。文件夹通常继承其父级的权限,通常还包括拥有完全权限的创建者/所有者。您是否要保存到“程序文件”或其他内容?
  • 我不是指您要保存的文件类型,我是指%ProgramFiles% 文件夹
  • 'mydocs\images\test\test1\test\2\3m' 在我看来并不完整。开始时好像缺少 `C:` 之类的东西?
  • 不!但!!!你让我看着和思考。这是我的错……很抱歉。我会删除这个——我忘了​​给最终路径一个实际的文件名(DOH!)
  • @UweKeim -- 这只是 Uwe 的一个例子。

标签: c# folder-permissions


【解决方案1】:

如果您愿意,我可以关闭它 - 但只是为了提出我的问题......在这里:

在这里:webClient.DownloadFile(remoteUrl, finalLocalFolder);

finalLocalFolder 应该是“C:\mydocs\images\test\test2\theimagefilename.jpg”时的结果类似于:“C:\mydocs\images\test\test2”

愚蠢的时刻。对不起。

【讨论】:

    猜你喜欢
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 2015-05-01
    • 2017-09-05
    • 2019-06-18
    • 2011-08-01
    • 2016-06-19
    相关资源
    最近更新 更多