测试下来,偶尔能删除,大多数时候不能删除,奇怪了server.MapPath('~'+ doc.VirDir.Replace("\\","/"))
VirDir = \LibrarySys\20130405\9\80509734-181c-45ff-901e-9537e9fbc130\
代码部分
controller
LibraryBLL.BatchDelete(guidArr, albGuidArr, Server);model
/// <summary>
/// 文档--批量删除
/// </summary>
public static void BatchDelete(string[] guidArr,string[] guidSearch, HttpServerUtilityBase server)
{
using (var db = new WEBVODEntities())
{
var documents = db.Library.Where(a => guidSearch.Contains(a.Guid)).ToList();
foreach (var doc in documents)
{
CommonUtils.DeleteDir(server.MapPath('~'+ doc.VirDir.Replace("\\","/") ) );
}
db.ExecuteStoreCommand("delete from Library where Guid in(" + string.Join(",", guidArr) + ")");
}
}删除部分 ///<summary>
///直接删除指定目录下的所有文件及文件夹(保留目录)(带异常控制)
///(xie:拷贝自网络)
///</summary>
///<param name="strPath">文件夹路径</param>
///<returns>执行结果</returns>
public static bool DeleteDir(string strPath)
{
try
{
strPath = @strPath.Trim().ToString();
if (System.IO.Directory.Exists(strPath)) // 判断文件夹是否存在
{ string[] strDirs = System.IO.Directory.GetDirectories(strPath); // 获得文件夹数组
string[] strFiles = System.IO.Directory.GetFiles(strPath); // 获得文件数组
foreach (string strFile in strFiles) // 遍历所有子文件夹
{
System.IO.File.Delete(strFile); // 删除文件
}
foreach (string strdir in strDirs) // 遍历所有文件
{
System.IO.Directory.Delete(strdir, true); // 删除文件夹
}
}
// 成功
return true;
}
catch (Exception Exp) // 异常处理
{
// 异常信息
System.Diagnostics.Debug.Write(Exp.Message.ToString()); // 失败
return false;
}
}
找到一篇文章
如何:在 Visual Studio 中创建 IIS 虚拟目录
http://msdn.microsoft.com/zh-cn/library/d6cw6cfs(v=vs.100).aspx
设好虚拟目录后出现的异常是,
对路径“F:\win2008iis\BYVOD\LibrarySys\20130404\10\0771d80c-415e-4b7f-8824-6bd64736d157\book.pdf”的访问被拒绝。是不是要设置什么权限?