none
文件“E:\file\新建 文本文档.txt”正由另一进程使用,因此该进程无法访问该文件 RRS feed

  • 问题

  •   private void CopyDirectory(string srcdir, string desdir)
        {
          string folderName = srcdir.Substring(srcdir.LastIndexOf("\\")+1);
    
          string desfolderdir = desdir +"\\"+ folderName;
    
          if (desdir.LastIndexOf("\\") == (desdir.Length - 1))
          {
            desfolderdir = desdir + folderName;
          }
          string[] filenames = Directory.GetFileSystemEntries(srcdir);
    
          foreach (string file in filenames)// 遍历所有的文件和目录
          {
            if (Directory.Exists(file))// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
            {
    
              string currentdir = desfolderdir + "\\" + file.Substring(file.LastIndexOf("\\") + 1);
              if (!Directory.Exists(currentdir))
              {
                Directory.CreateDirectory(currentdir);
              }
    
              CopyDirectory(file, desfolderdir);
            }
    
            else // 否则直接copy文件
            {
              string srcfileName = file.Substring(file.LastIndexOf("\\")+1);
    
              srcfileName = desfolderdir + "\\" + srcfileName;
    
              //目录不存在直接创建目录
              if (!Directory.Exists(desfolderdir))
              {
                Directory.CreateDirectory(desfolderdir);
                File.Copy(file, srcfileName);
                
              }
              else
              {
    
                if (File.Exists(srcfileName))
                {
                  
                  string md51 = md5_hash(file);
                  string md52 = md5_hash(srcfileName);
                  if (md51 != md52)
                  {
                      //文件“E:\file\新建 文本文档.txt”正由另一进程使用,因此该进程无法访问该文件。
                    File.Copy(file, srcfileName,true);
                  }
    
                }
                else
                {
                  File.Copy(file, srcfileName); 
                }
    
                
              }
              
              
            }
          }
        }
    
    2010年11月23日 7:03

答案

  • 您您是否在其他地方打开了此文件,比如记事本?如果没有的话,重新启动一下计算机,再运行您的代码试试看,以便排除其他进程访问此文件的可能性。
    Mark Zhou
    2010年11月23日 7:19

全部回复

  • 您您是否在其他地方打开了此文件,比如记事本?如果没有的话,重新启动一下计算机,再运行您的代码试试看,以便排除其他进程访问此文件的可能性。
    Mark Zhou
    2010年11月23日 7:19
  • 文件流是否没有关闭? FileSteam/SteamWriter/SteamReader close...
    2010年11月23日 14:19
  •  

    dear
    这段code看来没啥太大的问题,是否你在其他的方法里有使用文件流而忘了释放??


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2010年11月24日 1:02
  • 应该是md5_hash()函数中调用的file没有被关闭
    平凡的男孩
    2010年11月24日 7:17