DirectoryInfo không phải là một lớp tĩnh (bạn trộn nó với Directory mà thấy nhiều phương pháp tĩnh) do đó bạn nên tạo thể hiện của nó:
var dir = new DirectoryInfo(textBoxPath.Text);
FileInfo[] files = dir.GetFiles();
Ngoài ra tôi đề nghị bạn sử dụng Path.Combine
để tạo đường dẫn tệp mới và phương pháp FileInfo.MoveTo
, không yêu cầu nguồn gốc e tên thư mục:
for(int i = 0; i < files.Length; i++)
{
FileInfo file = files[i];
string destination = Path.Combine(file.DirectoryName, "File", i.ToString());
file.MoveTo(destination);
}
hơn Một suy nghĩ - nếu bạn không cần bất kỳ thông tin bổ sung về các tập tin, bên cạnh tên, sau đó bạn có thể nhận được tên tập tin duy nhất, mà không FileInfo
đối tượng sáng tạo. Sử dụng các phương pháp tĩnh của các lớp học Directory
và File
. Đó sẽ là hiệu quả hơn:
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);
}
Nguồn
2013-07-12 16:56:12
Lý do của downvote là gì? –