Directory.Move 对路径“D:\”的访问被拒绝。

分类:服务器| 发布:camnprbubuol| 查看: | 发表时间:2011/1/24

问题一:我对文件夹r的安全属性设置了ASP.NET用户的完全控制权限,当在运行时也会抱错:“对路径“c:\inetpub\r”的访问被拒绝。”
问题二:还有一种错误提示是:“当文件已存在时,无法创建该文件。”

注:源文件夹r有三个文件、目标文件夹为空。

 

 

第一个问题是因为你试图对虚拟目录进行操作,那是不允许的,如果需要,并且在有权限的情况下,应该直接操作物理目录;Directory类的静态函数都是直接操作物理目录的;
第二个问题很明显啊,在目录中已经存在相同文件名称的文件,所有无法再创建了,这个问题很容易出现在多此进行程序调试情况下发生,因为第一次调试的时候该文件就被创建了

 

对System.IO.Directory.Move方法来说,DestDirName应该是包含目标文件夹名和移动过去后的文件名,而不仅仅是目标文件夹名
例如,应写成
Directory.Move(@ "c:\fileName ",   @ "c:\destDir\fileName ");

设置ASP.NET用户为administrator

 

 

我想给一个文件夹重命名,使用Directory.Move函数,代码如下:
Directory.Move(@"F:\ajaxpro\data", @"F:\ajaxpro\New");
结果提示:F:\ajaxpro\data的访问被拒绝,也就是源文件夹访问被拒绝
从网上找了下,主要有两种可能:
1、文件夹的权限问题,可是我设置了Administrator和ASPNET账户的权限都是完全控制,还是出错
2、文件夹正在被使用,但是在我的程序中,调用这个函数之前根本没有提到这个文件夹
而且,目标文件夹也不存在,请问这是什么原因,我该怎么解决
补充:我做的是web程序,难道是程序一运行,打开端口,整个文件夹就处于被占用状态?不明白……

 

 

 

---加network  service  用户,赋全部权限

 

XP是ASPNET用户,而2003SERVER是NETWORK SERVICE

 

加一个Internet来宾帐号就行了。V_V

 

---如果是web程序要操作目录,貌似要根目录的权限 也就是F:

 

磁盘与磁盘直接不能移动。Directory.Move(@"E:\",@"F:\");

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/archives/183.html

相关文章