cmd.exe和file.move
这两方法,第一个不美观,会弹出cmd.exe,第二个则是麻烦,如果遇到大型文件,闷都闷死。
重命名文件夹的方法,已经找到,但偏偏重命名文件的方法一直试不出来。
麻烦高手请教!

解决方案 »

  1.   

    第一种,你可以加 /C 参数,这样就不会弹出来了,这样是比较推荐的做法.File.Move怎么麻烦了?
      

  2.   

    file.move 
    是正解,不用担心大文件的效率问题,因为在windows操作系统中(别的操作系统没有查资料)在同一个磁盘分区中移动一个文件是不做文件流操作的。
    操作系统会偷懒,只改动存储该段文件的磁盘索引。
    而在一个磁盘分区中移动文件(无论是否在同一文件夹下)并且改名,都是没有文件流操作,而是该变盘索引并且修改文件名。
    至于在同一个文件夹下移动文件并改名,连索引都没有变,只是改了下名字而已。不信的话,你找个1G的文件在一个磁盘分区剪切,比如在D:\下随意的剪切,和从D:\剪切到C:\下效率完全不一样。
      

  3.   

    File.Nove 已经很完美了。楼主结贴吧。
      

  4.   

    File.move 和 重命名文件 有什么关系?
      

  5.   

    System.IO.File.Move(@"F:\bbs.wofei.net@色即是空2(飞鸟影苑出品)\冰河世纪全集收藏版\Iceage.II.2006.CE.XviD.AC3-WAF.rmvb",
                        @"F:\bbs.wofei.net@色即是空2(飞鸟影苑出品)\冰河世纪全集收藏版\Iceage.II.rmvb");实现了重命名文件
      

  6.   

    file.move 
    如果遇到大型文件,闷都闷死??===============怎么郁闷了==??========================================================================================================================================
    File.Move=====================
    几乎不花时间无论是大文件还是小文件
    ===================================================
      

  7.   


     ProcessStartInfo p=new  ProcessStartInfo ();
     p.FileName=cmd.exe;
     string renStr=@"/c ren \"c:\my data\1.xls 2.xls \" "; //Waring 如改有空格的路径,要引号包住 p.Arguments =renStr;
     p.UseShellExecute = false;
     p.CreateNoWindow = true;          //設置不顯示窗口 ...这是你要的形式吧
     Process.strat(p);
     
      

  8.   

     //参考一下
    string newfile = filename.Substring(filename.LastIndexOf('\\') + 1).Replace("xml", "xls");
     string command = "ren  \"" + filename + "\" " + newfile;
      

  9.   

    file.move对于文件不是很大的文件比较合适;但是文件比较大的时候,很慢的,而且必须把文件读一遍,伤硬盘.
      

  10.   

    Windows操作系统中在同一个磁盘目录下file.move是不会把文件重读一遍的,微软没有那么傻。
      

  11.   

    那是否可理解为:Directory.Move也一样?
      

  12.   

    确实如 ylqmd 所说一样,我测试了.在同一个磁盘分区,速度相当的快,我用的是2G的文件测试的