如何删除只读文件夹及文件夹内所有文件?

kart15 2010-10-29 05:09:28
我参照网上的代码,是这样的:

string toFileFullPath = HttpContext.Current.Server.MapPath("../../" + TURL + "/");
//创建文件夹
if (!Directory.Exists(toFileFullPath))
{
return "文件夹不存在";
}
else
{
//网上这一段是设置文件夹为正常,但我设置后,还是会提示:对路径“E:\Software Develop\gdjtsg\ddd\”的访问被拒绝 FileInfo file = new FileInfo(toFileFullPath);
if (file.Attributes.ToString().IndexOf("ReadOnly") != -1)
{
file.Attributes = FileAttributes.Directory & FileAttributes.Normal;
}

File.Delete(toFileFullPath);

return "删除成功";
}
...全文
1696 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
kart15 2010-11-04
  • 打赏
  • 举报
回复
我把所有的用户都加上去了,都设成看了完全控制,但还是不行啊
kart15 2010-11-04
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 mashimaro_ra 的回复:]
NTFS 格式下 给目录添加 asp.net 账号权限的权限(在Windows 2003 下是Network Service 账号)
[/Quote]

如何加啊?
mashimaro_ra 2010-11-04
  • 打赏
  • 举报
回复
NTFS 格式下 给目录添加 asp.net 账号权限的权限(在Windows 2003 下是Network Service 账号)
kart15 2010-11-04
  • 打赏
  • 举报
回复
我把程序弄到fat32的盘里面就OK
在ntfs的盘里面不行

为什么啊?
Teng_s2000 2010-11-04
  • 打赏
  • 举报
回复
有权限设置文件的属性吗

如果有再想办法删除吧

先给那个文件夹赋予管理员的权限
kart15 2010-11-03
  • 打赏
  • 举报
回复
非常感谢各位,我把程序弄到fat32的盘里面就OK
在ntfs的盘里面不行

而如果到时候传到服务器的话,也是NTFS的

咋整啊?
还想懒够 2010-11-01
  • 打赏
  • 举报
回复
只要权限足够,就算是文件只读,也是可以删除的。文件只读只是表明该文件不可改写。

因此需要检查你的应用程序池和impersonate等设置。
Arthur080319 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 kart15 的回复:]
我参照网上的代码,是这样的:

C# code

string toFileFullPath = HttpContext.Current.Server.MapPath("../../" + TURL + "/");
//创建文件夹
if (!Directory.Exists(toFileFullPath))
{
……
[/Quote]

你判断是否只读属性
这个file是哪来的对象?
wuhuabucai 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 chen_ya_ping 的回复:]
对于文件夹,然后文件夹还有写的属性吗?
什么叫只读的文件夹,一般的文件夹不是都是读的吗?
[/Quote]
权限可以继承的
ruiandli 2010-11-01
  • 打赏
  • 举报
回复
File.Delete(info.FullName);
chen_ya_ping 2010-11-01
  • 打赏
  • 举报
回复
对于文件夹,然后文件夹还有写的属性吗?
什么叫只读的文件夹,一般的文件夹不是都是读的吗?
chen_ya_ping 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 wuhuabucai 的回复:]

对路径“E:\Software Develop\gdjtsg\ddd\”的访问被拒绝

asp.net帐号的相关操作权限是否具备???
[/Quote]
权限的问题。
chen_ya_ping 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kart15 的回复:]

请问各位大侠,只读文件得如何删除啊!求救中。。。。。
[/Quote]

String directoryPath = Server.MapPath("\\Test");
DirectoryInfo directoryInfo = new DirectoryInfo(directoryPath);
FileInfo[] fileInfos = directoryInfo.GetFiles();
foreach (FileInfo info in fileInfos)
{
if (info.IsReadOnly)
{
File.Delete(info.FullName);
}
}
wuhuabucai 2010-11-01
  • 打赏
  • 举报
回复
对路径“E:\Software Develop\gdjtsg\ddd\”的访问被拒绝

asp.net帐号的相关操作权限是否具备???
kart15 2010-11-01
  • 打赏
  • 举报
回复
继续求救....
kart15 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 xiaoyuan402 的回复:]
先判断是否是只读,是的话把只读的属性改掉,然后再删除。
[/Quote]

判断了,没用啊!
xiaoyuan402 2010-11-01
  • 打赏
  • 举报
回复
先判断是否是只读,是的话把只读的属性改掉,然后再删除。
kart15 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wuyq11 的回复:]
File.SetAttributes方法设置为不是只读的
DirectoryInfo mDir=new DirectoryInfo( "C:\\test ");
mDir.Attributes=FileAttributes.Normal;
[/Quote]
这样也还是会报错的:“对路径的访问被拒绝”

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentException: 对路径的访问被拒绝。

报错行:行 610: mDir.Attributes = FileAttributes.Normal;
MarsHands 2010-11-01
  • 打赏
  • 举报
回复
DirectoryInfo mDir=new DirectoryInfo( "C:\\test ");
就这里的问题,你好好看看DirectoryInfo属性方法格式
hztltgg 2010-11-01
  • 打赏
  • 举报
回复
string toFileFullPath = HttpContext.Current.Server.MapPath("../../" + TURL + "/");

这个是把自己也想删了?
加载更多回复(10)

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧