我想问一下,下面的代码有什么问题,因为我一直试图在我的本地机器上创建一个文件夹,但它不能按照我的预期工作。它给了我一个错误说:
拒绝访问路径“C:\inetpub\wwwroot//PrintLabels/”
代码:
Directory.CreateDirectory(appPath + "//PrintLabels/");
我想问一下,下面的代码有什么问题,因为我一直试图在我的本地机器上创建一个文件夹,但它不能按照我的预期工作。它给了我一个错误说:
拒绝访问路径“C:\inetpub\wwwroot//PrintLabels/”
代码:
Directory.CreateDirectory(appPath + "//PrintLabels/");
如果您使用的是 Windows Vista 或更高版本,请先关闭 Visual Studio,然后右键单击其图标并选择以管理员身份运行选项。然后,当您执行代码时,它应该停止给出拒绝访问异常。
指定的路径必须在同一台计算机上,或者还可以引用服务器和共享名称的相对路径或通用命名约定 (UNC) 路径。
肯定是
string path = @"\\172.16.136.35\\SharedFolder1\\";
IP 地址取代了计算机名称的使用。你不能同时使用它们。
string path = @"\\ipaddress\comp_name\shared_folder\new_folder";
应该:
string path = @"\\ipaddress\shared_folder\new_folder";
请注意,IP 地址是共享文件夹所在的计算机,而不是您发送请求的计算机。
我认为这是使用 AppPath 的问题。那是路径WWWroot。它用于创建网站。因此您可能没有正确的访问权限。
您可以尝试一些您具有正确访问权限的其他路径。
很可能(假设缺少 asp.net 标记)您的代码正在 ASP.Net 应用程序中运行。根据选择的安全模型帐户,代码运行在浏览器用户或特殊“匿名”帐户下。likley 的两个帐户都没有在“inetpub\wwwroot”文件夹中的写入/创建文件夹权限。
如果你真的想让这个访问 - 找出用户代码在什么下运行(即在异常时检查 Environment.UserName) - 如果你可以给这个用户权限 - 将本地资源管理器导航到你想要创建文件的文件夹/文件夹中的文件夹并调整文件夹属性的“安全”选项卡上的权限。
一般来说,将文件写入半随机位置(尤其是系统控制器,如 windows/程序文件/inetpub)并不是一个好主意。确保您了解您的操作的安全隐患...
注意:确保正确构建路径。Path.Combine
通过字符串连接和使用一长串随机斜杠/反斜杠字符是更好的方法。