我在文件夹中有超过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)
您可以使用File.Move
和String.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
。