高分恳求:不用File.Move重命名文件和CMD的代码。 cmd.exe和file.move这两方法,第一个不美观,会弹出cmd.exe,第二个则是麻烦,如果遇到大型文件,闷都闷死。重命名文件夹的方法,已经找到,但偏偏重命名文件的方法一直试不出来。麻烦高手请教! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第一种,你可以加 /C 参数,这样就不会弹出来了,这样是比较推荐的做法.File.Move怎么麻烦了? file.move 是正解,不用担心大文件的效率问题,因为在windows操作系统中(别的操作系统没有查资料)在同一个磁盘分区中移动一个文件是不做文件流操作的。操作系统会偷懒,只改动存储该段文件的磁盘索引。而在一个磁盘分区中移动文件(无论是否在同一文件夹下)并且改名,都是没有文件流操作,而是该变盘索引并且修改文件名。至于在同一个文件夹下移动文件并改名,连索引都没有变,只是改了下名字而已。不信的话,你找个1G的文件在一个磁盘分区剪切,比如在D:\下随意的剪切,和从D:\剪切到C:\下效率完全不一样。 File.Nove 已经很完美了。楼主结贴吧。 File.move 和 重命名文件 有什么关系? 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");实现了重命名文件 file.move 如果遇到大型文件,闷都闷死??===============怎么郁闷了==??========================================================================================================================================File.Move=====================几乎不花时间无论是大文件还是小文件=================================================== 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); //参考一下string newfile = filename.Substring(filename.LastIndexOf('\\') + 1).Replace("xml", "xls"); string command = "ren \"" + filename + "\" " + newfile; file.move对于文件不是很大的文件比较合适;但是文件比较大的时候,很慢的,而且必须把文件读一遍,伤硬盘. Windows操作系统中在同一个磁盘目录下file.move是不会把文件重读一遍的,微软没有那么傻。 那是否可理解为:Directory.Move也一样? 确实如 ylqmd 所说一样,我测试了.在同一个磁盘分区,速度相当的快,我用的是2G的文件测试的 net中listbox怎么删除多行 多个DataTable放入一个新的DataTable中???? 到底什么是句柄? 为什么我写的程序都很占资源 winform如何实现多表头? 存储过程分页怎么取到存储过程的返回值? StreamReader的问题:监视sLine发现为什么第二次以后就读不出那一行里的汉字来呢?第一次没问题。 这个效果是用什么控件实现的 哪里可以找到比较详细的 SqlDmo 的开发文档? 高手请指教一下! GDI+ 橡皮擦功能 [自己动手丰衣足食]RichTextBox匹配C#关键字
是正解,不用担心大文件的效率问题,因为在windows操作系统中(别的操作系统没有查资料)在同一个磁盘分区中移动一个文件是不做文件流操作的。
操作系统会偷懒,只改动存储该段文件的磁盘索引。
而在一个磁盘分区中移动文件(无论是否在同一文件夹下)并且改名,都是没有文件流操作,而是该变盘索引并且修改文件名。
至于在同一个文件夹下移动文件并改名,连索引都没有变,只是改了下名字而已。不信的话,你找个1G的文件在一个磁盘分区剪切,比如在D:\下随意的剪切,和从D:\剪切到C:\下效率完全不一样。
@"F:\bbs.wofei.net@色即是空2(飞鸟影苑出品)\冰河世纪全集收藏版\Iceage.II.rmvb");实现了重命名文件
如果遇到大型文件,闷都闷死??===============怎么郁闷了==??========================================================================================================================================
File.Move=====================
几乎不花时间无论是大文件还是小文件
===================================================
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);
string newfile = filename.Substring(filename.LastIndexOf('\\') + 1).Replace("xml", "xls");
string command = "ren \"" + filename + "\" " + newfile;