黑马程序员技术交流社区

标题: 关于File和Directore的Move区别 [打印本页]

作者: dugubaitian    时间: 2014-7-2 10:33
标题: 关于File和Directore的Move区别
本帖最后由 dugubaitian 于 2014-7-2 16:50 编辑

最后用File.Move和Directore.Move都行,这两个有什么区别和联系呢??
string[] wjm=Directory.GetFiles(@"d:\文件重命名", "*txt");
            for (int i = 0; i < wjm.Length;i++ )
            {
                string snew = Path.GetDirectoryName(wjm);
                string s2 = i.ToString("000") + ".txt";
                string nn = Path.Combine(snew, s2);
                File.Move(wjm, nn);
            }

作者: 曾倩倩    时间: 2014-7-2 11:13
File.Move:
如果操作的源和目标处于相同的根目录下,如源处于/C:/,目标处于/C:/test/,Move操作就不会引发异常。

如果操作的源与目标处于同一目录下,即全位于C盘下,则进行的是重命名操作,与文件正在是否使用无关。

如果操作的源与目标处于相同的根目录下,如源处于/C:/,目标处于/C:/test/,Move操作进行的是移动操作。与文件是否正在使用无关。
作者: The_Enternal    时间: 2014-7-2 11:24
你的学习内容貌似基础视频里面没有,你是不是在传智播客的基础班学习,或者弄了别的视频!基础视频里面没有讲过path类的用法!
作者: dugubaitian    时间: 2014-7-2 12:36
The_Enternal 发表于 2014-7-2 11:24
你的学习内容貌似基础视频里面没有,你是不是在传智播客的基础班学习,或者弄了别的视频!基础视频里面没有 ...

有啊!  蒋坤老师就讲的有
作者: The_Enternal    时间: 2014-7-2 15:28
dugubaitian 发表于 2014-7-2 12:36
有啊!  蒋坤老师就讲的有

你确定是蒋坤老师的视频?
作者: 向晓伟    时间: 2014-7-2 16:09
表示还没学到这来~~
作者: The_Enternal    时间: 2014-7-2 17:00
本帖最后由 The_Enternal 于 2014-7-2 17:17 编辑

File.Move必须提供完成的源文件路径文件名,目标文件目录和文件名,也就是说File.Move可以复制并重命名文件,Directory.Move能复制目录或者源目录下的文件到指定目录,但是不能对被复制的文件改名!还有你的代码有点问题,给你改正了一下!
  1.         string[] wjm = Directory.GetFiles(@"d:\文件重命名", "*txt");
  2.                     for (int i = 0; i < wjm.Length; i++)
  3.                     {
  4.                         string snew = Path.GetDirectoryName(wjm[i]);
  5.                         string s2 = i.ToString("000") + ".txt";
  6.                         string nn = Path.Combine(snew, s2);
  7.                         File.Move(wjm[i], nn);
  8.                     }
复制代码





作者: continue     时间: 2014-7-2 22:49
一个是操作文件的  一个是操作文件夹的,用法都是一样的,不过用的很少,你可以尝试用FileStream来进行移动,其实Move方法内部还是通过FileStrem来进行的
作者: 渐渐的起飞    时间: 2014-7-2 22:55
进度真快
作者: dugubaitian    时间: 2014-7-3 06:57
The_Enternal 发表于 2014-7-2 17:00
File.Move必须提供完成的源文件路径文件名,目标文件目录和文件名,也就是说File.Move可以复制并重命名文件 ...

我在这试了下!  file.Move和Directory.Move都能达到同样的效果。 怎么回事?

作者: The_Enternal    时间: 2014-7-3 09:53
dugubaitian 发表于 2014-7-3 06:57
我在这试了下!  file.Move和Directory.Move都能达到同样的效果。 怎么回事?

又查了一下MSDN,严格说两者操作具体文件没有区别,只是Directory.Move可以移动文件夹,可以移动文件,但是File.Move只能对单个文件进行操作不能操作目录!


作者: dugubaitian    时间: 2014-7-3 10:09
The_Enternal 发表于 2014-7-3 09:53
又查了一下MSDN,严格说两者操作具体文件没有区别,只是Directory.Move可以移动文件夹,可以移动文件,但 ...

嗯 我知道了。。  谢了!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2