所以我已经多次寻找答案了,并且干涉了权限但没有用,但是这段代码仍然不允许我将文件下载到指定的路径。
WebClient client = new WebClient();
client.DownLoadFile("http://dl.dropbox.com/u/(My account)/Installer.jar", @"c:\Games\Name\libs");
client.DownLoadFile("http://dl.dropbox.com/u/(My account)/Name.zip", @"c:\Games\Name");
总是给我:"访问路径&#c; \ Games \ Name \ libs'被拒绝。"
另请注意,使用Windows XP SP3。
答案 0 :(得分:11)
您好我在本地尝试了上述代码并得到了相同的错误“访问被拒绝”:
WebClient myWebClient = new WebClient();
myWebClient.DownloadFile("http://localhost:1929/2.png", @"C:\Z\)
尝试在目录末尾指定文件名,在运行时本地保存没问题:
WebClient myWebClient = new WebClient();
myWebClient.DownloadFile("http://localhost:1929/2.png", @"C:\Z\FILENAME.jpg")
答案 1 :(得分:2)
应用程序可能没有写入该文件夹的权限。如果这是客户端应用程序,请尝试以管理员身份运行它。否则,将'c:\ Games \ Name \ libs'的权限更改为对每个人的完全控制。
答案 2 :(得分:1)
如果拒绝访问,请尝试以管理员身份运行。
如果不起作用,请导航到文件夹C:\Games\Name\libs
,右键单击它并转到“属性”。
选择“安全”选项卡,在顶部列表中选择将运行程序的用户组。 (尝试使用Users (YourName-PC\Users)
)。
选中它后,点击列表底部的修改,然后在底部列表中选择Full control
下的Allow
。
答案 3 :(得分:0)
您可以使用下面的代码查看您是否对文件夹具有写入权限,如果未在下载前使用setaccesscontrol设置失败规则
public static bool HaveWritePermissionsForFolder(string path)
{
var rules = Directory.GetAccessControl(Path.GetDirectoryName(Path.GetDirectoryName(path))).GetAccessRules(true, true, typeof(SecurityIdentifier));
bool allowwrite = false;
bool denywrite = false;
foreach (FileSystemAccessRule rule in rules)
{
if (rule.AccessControlType == AccessControlType.Deny &&
(rule.FileSystemRights & FileSystemRights.WriteData) == FileSystemRights.WriteData &&
(groups.Contains(rule.IdentityReference) || rule.IdentityReference.Value == sidCurrentUser)
)
{
denywrite = true;
}
if (rule.AccessControlType == AccessControlType.Allow &&
(rule.FileSystemRights & FileSystemRights.WriteData) == FileSystemRights.WriteData &&
(groups.Contains(rule.IdentityReference) || rule.IdentityReference.Value == sidCurrentUser)
)
{
allowwrite = true;
}
}
if (allowwrite && !denywrite)
return true;
return false;
}