测试下来,偶尔能删除,大多数时候不能删除,奇怪了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;
            }
        }