在我的电脑或资源管理器进入到某个目录里,此时用Directory.Move移动这个目录或用Directory.Delete删除这个目录时有时会出异常
如何获取在我的电脑或资源管理器里是否打开了这个目录?
还有如何强制移除、删除这个目录?

解决方案 »

  1.   

     try
                {
                    DirectoryInfo[] folders = folder.GetDirectories();
                    for (int i = 0; i < folders.Length; i++)
                    {
                        if (isRead(folders[i]))
                        {
                            readAllDirectories(folders[i]);
                        }
                    }
                }
                catch (UnauthorizedAccessException ex)
                {
                    if (UnauthorizedAccess != null)
                    {
                        UnauthorizedAccess(this, new UnauthorizedAccessEventArgs(ex.Source));
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
     private bool isRead(FileSystemInfo fileSystemInfo)
            {
                bool flag = true;
                flag = _readSystem || flag && ((fileSystemInfo.Attributes & FileAttributes.System) != FileAttributes.System);
                flag = _readHidden || flag && ((fileSystemInfo.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden);
                flag = _readTemporary || flag && ((fileSystemInfo.Attributes & FileAttributes.Temporary) != FileAttributes.Temporary);
                return flag;
            }
      

  2.   


    http://www.cnblogs.com/MR520/archive/2012/03/20/2408782.html
      

  3.   


    用try...catch也可以http://blog.csdn.net/yanleigis/article/details/2286796
      

  4.   

                                //删除文件夹                            if (bllFiles.Delete(Convert.ToInt32(splitID[j])))
                                {
                                    //获取文件夹位置                                oldFullFile = Server.MapPath(string.Format("../../../Upload/NetworkHardDisk{0}/{1}/", hiddCurrParent.Value, filenames[j]));
                                    if (Directory.Exists(oldFullFile))
                                        Directory.Delete(oldFullFile);
                                }