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);
}
downvote的原因是什麼? –