按目录顺序编号文件

taji01

我有一个包含一些文本文件的目录。我正在尝试以编程方式重命名文件,从01、02、03 ... 103等开始依次进行重命名...

我的目录中有很多文件,但是这些文件的顺序不正确。我想删除其当前序列并从01开始,依此类推。

目前,我已编写了此文件,但它缺少一些内容,无法正常工作。你能为我指出正确的方向吗?

在此处输入图片说明

    public static void NumberFiles()
    {
        var files = Directory.GetFiles(@"C:\Test-File", "*.txt");
        var filenames = files.Select(Path.GetFileName).ToArray();
        int count = 1;
        foreach (var f in files)
        {
            System.IO.File.Move(f, filenames[count -1].Remove(0, 2));
            string newFileName = Path.Combine(Path.GetDirectoryName(f), (count + Path.GetFileName(f)));
            System.IO.File.Move(f, newFileName);
            count++;
        }

        Console.WriteLine("Job Complete!");
        Console.ReadKey();
    }

错误:运行此文件时,我找不到文件。

在此处输入图片说明

德米特里·拜琴科(Dmitry Bychenko)

首先,我们应该获取要重命名的文件。我怀疑是否所有* .txt文件都应该移动,可能应该使用一些模式

string pattern = @"^[0-9]{1,3}\..*Copy \([A-Z0-9]+\)$";

所以我们可以把

var files = Directory
  .EnumerateFiles(@"C:\Test-File", "*.txt")
  .Where(file => Regex.IsMatch(Path.GetFileNameWithoutExtension(file), pattern))
  .Select(file => new {
     // C:\Test-File\25.New File - Copy (A4).txt
     file  = file,                              
     // 25    
     index = int.Parse(Regex.Match(Path.GetFileName(file), @"^[0-9]+").Value),
     // New File - Copy (A4).txt
     name  = Path
       .GetFileName(file)
       .Substring(Regex.Match(Path.GetFileName(file), @"^[0-9]+\.").Value.Length)  
       .Trim()  
   }) 
  .OrderBy(item => item.index)
  .Select((item, i) => new {
     // C:\Test-File\25.New File - Copy (A4).txt
     oldFile = item.file,
     // C:\Test-File\07.New File - Copy (A4).txt 
     newFile = Path.Combine(
         Path.GetDirectoryName(item.file),
       $"{i + 1:d2}.{item.name}") 
   })
  .ToArray();

如果我们想看看发生了什么:

foreach (var record in files)
  Console.WriteLine($"{record.oldFile} -> {record.newFile}");

最后,循环并移动:

foreach (var record in files)  
  File.Move(record.oldFile, record.newFile);

Console.WriteLine("Job Complete!");
Console.ReadKey();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

按顺序分配编号

目录中文件的列表(按名称顺序)

按特定顺序从目录中打开文件

如何删除目录中顺序编号的文件的一半?

如何在JavaScript中对按顺序编号的文件进行排序?

按子文件夹编号对目录列表进行排序

按顺序乘以数组编号

Ubuntu中的批量重命名文件:根据目录中的顺序进行顺序编号。(Ubuntu 16.04)

根据祖父和父目录重命名文件并顺序编号多个文件

按字母顺序从目录中读取 Android 文件

如何按“类型”对所有目录排序文件顺序?

c#foreach文件在目录中,但按特定顺序

按顺序列出目录文件并使用powershell进行替换

创建带有前导零的按顺序编号的文件夹并将文件移动到它们

Python:按创建日期或文件名中的编号列出目录中的XML文件

创建顺序编号的目标目录和批处理移动文件的命令

从R中的目录按语料库的编号顺序读取文本文件

如何在bash中创建按顺序编号的文件名?

如何使用ffmpeg从0开始按顺序对编号/命名的文件进行批处理?

如何使用Shell脚本创建始终4位按顺序编号和命名的文件

按顺序编号MongoDB子文档

按顺序重新编号组

在更新中按顺序编号记录

按编号顺序对表进行排序

商店名称+编号,并根据编号按大小顺序排序

Shell:按文件计数顺序列出目录(包括子目录)

目录*和文件顺序

按顺序阅读文件

从目录中按字母顺序的最后一个文件中获取文件名