2013-02-20 38 views
2

我想问下,以下代码有什么问题,因为我一直试图在本地机器上创建一个文件夹,但根据我的预期,它不起作用。 它给了我一个错误说:如何在我的本地机器上创建目录

访问路径 'C:\的Inetpub \ wwwroot文件// PrintLabels /' 被拒绝

代码:

Directory.CreateDirectory(appPath + "//PrintLabels/"); 
+0

什么是appPath?此应用程序是否运行在Web服务器或Winforms应用程序上?用户运行的应用程序是否被授予写入此目录(检查ACL)? – Larry 2013-02-20 06:37:44

+2

这不是代码问题 - 它只是说运行此代码的用户没有足够的权限(安全性)在该位置创建目录... – Yahia 2013-02-20 06:46:58

+2

请使用'Path.Combine'而不是手动添加字符串和随机数字的斜杠。 – 2013-02-20 06:47:23

回答

1

如果你是使用Windows Vista或更高版本,然后先关闭Visual Studio,然后右键单击其图标并选择以管理员身份运行选项。然后,当你执行代码时,它应该停止给予拒绝异常的访问。

+0

是的即时通讯运行它作为管理员,但它仍然没有来临 – 2013-02-20 07:54:07

0

我认为这是使用AppPath的问题。 那就是WWWroot的路径。它用于创建网站。 因此您可能没有正确的访问权限。

你可以尝试一些其他路径,你有正确的访问权限。

+0

thanx男人我即将尝试 – 2013-02-20 07:53:13

0

最有可能的(假设错过asp.net标签)你的代码在ASP.Net应用程序中运行。根据选择的安全模型帐户,代码运行的是浏览器用户或特殊的“匿名”帐户。这两个帐户likley都不会在“inetpub \ wwwroot”文件夹中拥有写入/创建文件夹权限。

如果你真想让这个访问 - 找出用户代码下运行(即检查Environment.UserName在异常的时刻) - 如果你确定给这个用户permissiosn - navigte本地浏览到文件夹您想要创建文件/文件夹并调整文件夹属性的“安全”选项卡上的权限。

一般情况下,将文件写入半随机位置(尤其是像windows/program files/inetpub这样的系统控制器)并不是一个好主意。确保你了解你的行为的安全影响...

注意:确保正确构建路径。 Path.Combine是通过字符串连接并使用长整型随机斜杠/反斜杠字符的更好方法。

+0

好男人让我试试thnx – 2013-02-20 07:55:54

1

指定的路径必须位于同一台计算机上,或者也可以引用服务器和共享名的相对路径或通用命名约定(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地址是计算机的一个地方的共享文件夹,而不是从你发送请求的人。

+0

我可以使用下面的代码,为了我创建一个文件夹使用我的ipAddress? Directory.CreateDirectory(appPath +“// PrintLabels /”); StreamWriter w; w = File.CreateText(appPath +“// PrintLabels /”+“/Testfile.txt”); w.WriteLine(fileContents.ToString()); w.Flush(); w.Close(); – 2013-02-20 08:19:10

相关问题