各位大大们,小弟弟今天遇到一个问题,百思不得其解,问题如下:
我创建了一个web工程,然后添加了一个Global的文件,在Application_start中添加了如下代码
if (!Directory.Exists(LockFileFolder)) { Directory.CreateDirectory(LockFileFolder); } else { Directory.Delete(LockFileFolder, true); Directory.CreateDirectory(LockFileFolder); }
目的的话就是想,判断LockFileFolder是否存在,存在的话删除它,然后再创建一个新的,不存在就直接创建,本地测试没有问题,但是上传到IIS遇到了一个问题,就是每次重新启动IIS,调用了Global,然后文件夹被删除后,没有创建新的同名文件夹。。。。
分析:
1.以为是权限问题,我在代码中加入另一段创建另一个文件夹的代码,发现该文件夹被创建了,不是权限问题
2.以为else中的Directory.CreateDirectory(LockFileFolder);没有执行,我在Directory.Delete(LockFileFolder, true);和Directory.CreateDirectory(LockFileFolder);后都打印了Log,也没有问题。
3.最后在网上搜索,感觉可能是资源释放的问题,在Delete后sleep几秒后,就能创建了。
求:请问,这个问题到底是什么引起的?有没有什么更好的解决方法,分不多,望见谅,谢谢各位~
3 回答
幕布斯7119047
TA贡献1794条经验 获得超8个赞
我觉得你没必要删除那个文件夹,既然要新建干嘛要删除了...
你删除这个文件夹的目的可能就是想把里面的子文件或子文件夹都删除了.
其实你可以判断 存在该文件夹:就删除该文件夹下的所有文件.
不存在该文件夹: 才新建这个文件夹.
不知道这样符不符合你的需求.
炎炎设计
TA贡献1808条经验 获得超4个赞
我想最快的方式是用2个DirectoryInfo对象把,因为很有可能是进程被暂用了,在Delete(LockFileFolder, true)这句后面重新new一个对象出来var directoryInfo=new DirectoryInfo(“LockFileFolder”),在创建
- 3 回答
- 0 关注
- 226 浏览
添加回答
举报
0/150
提交
取消