新手问一个文件move问题

无边定罪 2016-07-05 02:53:45
我想实现一个拷贝功能,获取fdir里边的文件,move到tdir里边,如果遇见同名文件,则自动命名文件名+1,比如fdir里边有1,2,3,4四个文件,把他们move到tdir里边,并且改名为a1.a2.a3.a4,如果tdir里边有a2了,则自动跳过a2直接命名为a3,代码如下,不成功啊,老是提示文件已存在,改怎么处理呢?
if (!Directory.Exists(tdir))
{
Directory.CreateDirectory(tdir);
}
int nnn = 1;
string[] files = Directory.GetFiles(fdir);//静态方法调用 下面的几个函数也都是静态函数
foreach (string file in files)
{
string newFullName = tdir + "文件" + nnn + ".mp4";
if (File.Exists(tdir))
{
nnn = nnn + 1;
File.Move(file, newFullName);
}
}
...全文
107 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
巴士上的邂逅 2016-07-05
  • 打赏
  • 举报
回复
我是让你删除fdir文件夹里文件
  • 打赏
  • 举报
回复
你要在 nnn = nnn + 1; 这句的后面重新再给newFullName赋值一次(newFullName = tdir + "文件" + nnn + ".mp4";)因为虽然你的nnn增加了,但是新的文件名还是用的以前的nnn,并没有赋值给文件名。
无边定罪 2016-07-05
  • 打赏
  • 举报
回复
就是不想删除tdir目录里边的文件啊,想直接跳过接着命名
巴士上的邂逅 2016-07-05
  • 打赏
  • 举报
回复
你可以把File.Move替换为File.Copy(string sourceFileName, string destFileName, bool overwrite)和File.Delete()

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧