DirectoryInfo不是静态类(您将它与公开静态方法的Directory混合)因此您应该创建它的实例:
var dir = new DirectoryInfo(textBoxPath.Text);
FileInfo[] files = dir.GetFiles();
另外我建议您Path.Combine
用于生成FileInfo.MoveTo
不需要源目录名称的新文件路径和方法:
for(int i = 0; i < files.Length; i++)
{
FileInfo file = files[i];
string destination = Path.Combine(file.DirectoryName, "File", i.ToString());
file.MoveTo(destination);
}
再想一想 - 如果您不需要关于文件的任何其他信息,除了名称,那么您可以只获取文件名,而无需FileInfo
创建对象。使用Directory
和File
类的静态方法。这将更有效率:
string sourceDir = @"D:\Downloads";
string[] files = Directory.GetFiles(sourceDir);
for (int i = 0; i < files.Length; i++)
{
string fileName = files[i];
var destination = Path.Combine(sourceDir, "File", i.ToString());
File.Move(fileName, destination);
}