A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dugubaitian 中级黑马   /  2014-7-2 10:33  /  2257 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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);
            }

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

11 个回复

倒序浏览
File.Move:
如果操作的源和目标处于相同的根目录下,如源处于/C:/,目标处于/C:/test/,Move操作就不会引发异常。

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

如果操作的源与目标处于相同的根目录下,如源处于/C:/,目标处于/C:/test/,Move操作进行的是移动操作。与文件是否正在使用无关。

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
你的学习内容貌似基础视频里面没有,你是不是在传智播客的基础班学习,或者弄了别的视频!基础视频里面没有讲过path类的用法!
回复 使用道具 举报
The_Enternal 发表于 2014-7-2 11:24
你的学习内容貌似基础视频里面没有,你是不是在传智播客的基础班学习,或者弄了别的视频!基础视频里面没有 ...

有啊!  蒋坤老师就讲的有
回复 使用道具 举报
dugubaitian 发表于 2014-7-2 12:36
有啊!  蒋坤老师就讲的有

你确定是蒋坤老师的视频?
回复 使用道具 举报
表示还没学到这来~~
回复 使用道具 举报
本帖最后由 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.                     }
复制代码




评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
一个是操作文件的  一个是操作文件夹的,用法都是一样的,不过用的很少,你可以尝试用FileStream来进行移动,其实Move方法内部还是通过FileStrem来进行的
回复 使用道具 举报
进度真快
回复 使用道具 举报
The_Enternal 发表于 2014-7-2 17:00
File.Move必须提供完成的源文件路径文件名,目标文件目录和文件名,也就是说File.Move可以复制并重命名文件 ...

我在这试了下!  file.Move和Directory.Move都能达到同样的效果。 怎么回事?
回复 使用道具 举报
dugubaitian 发表于 2014-7-3 06:57
我在这试了下!  file.Move和Directory.Move都能达到同样的效果。 怎么回事?

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

回复 使用道具 举报 1 0
The_Enternal 发表于 2014-7-3 09:53
又查了一下MSDN,严格说两者操作具体文件没有区别,只是Directory.Move可以移动文件夹,可以移动文件,但 ...

嗯 我知道了。。  谢了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马