重命名文件夹c#中的文件

Jas*_*dle 27 c# file

我在文件夹中有超过1000个文件,名称为abc_1,abc_2 ... abc_n

我想从所有文件中删除此前缀'abc_'.有机会不做这个,因为他们超过1000并且会很痛苦.

用c#怎么做?

Agh*_*oub 81

您可以尝试使用此代码

DirectoryInfo d = new DirectoryInfo(@"C:\DirectoryToAccess");
FileInfo[] infos = d.GetFiles();
foreach(FileInfo f in infos)
{
    File.Move(f.FullName, f.FullName.Replace("abc_",""));
}
Run Code Online (Sandbox Code Playgroud)

  • 替换所有`abc`可能太好了.考虑到前缀只是一个例子,实际上更像是'ab`.然后你也可以将`Table1.ABD`替换为`Tle1.d`.然后你可以看看[this](http://stackoverflow.com/a/12347997/284240). (2认同)

Tim*_*ter 5

您可以使用File.MoveString.Substring(index)

var prefix = "abc_";
var rootDir = @"C:\Temp";
var fileNames = Directory.EnumerateFiles(rootDir, prefix + "*", SearchOption.AllDirectories);
foreach(String path in fileNames)
{
    var dir = Path.GetDirectoryName(path);
    var fileName = Path.GetFileName(path);
    var newPath = Path.Combine(dir, fileName.Substring(prefix.Length));
    File.Move(path, newPath);
}
Run Code Online (Sandbox Code Playgroud)

注意:Directory.EnumerateFiles(rootDir, prefix + "*", SearchOption.AllDirectories);还将从您的根目录搜索子文件夹。如果这不是预定用途SearchOption.TopDirectoryOnly