如何使用GetFile()获取文件夹中所有文件的文件信息? [英] How can i get the fileinfo of all files in a folder with GetFile()?
问题描述
我不知道我的错误是什么.
I dont know whats my mistake.
FileInfo[] FileInformation = DirectoryInfo.GetFiles(textBoxPath.Text);
for (int i = 0; i <= FileInformation.Length; i++)
{
File.Move(FileInformation[i].DirectoryName, FileInformation[i].Directory + "File" + i);
}
VisualSudio说这是错误:
VisualSudio says that here is the error:
System.IO.DirectoryInfo.GetFiles(textBoxPath.Text);
System.IO.DirectoryInfo.GetFiles(textBoxPath.Text);
推荐答案
DirectoryInfo a>不是静态类(您将它与目录混合使用,从而暴露了静态方法),因此您应该创建它的实例:
DirectoryInfo is not a static class (you mixed it with Directory which exposes static methods) thus you should create instance of it:
var dir = new DirectoryInfo(textBoxPath.Text);
FileInfo[] files = dir.GetFiles();
此外,我建议您使用Path.Combine
生成新的文件路径和FileInfo.MoveTo
方法,它们不需要源目录名称:
Also I suggest you to use Path.Combine
for generating new file path and FileInfo.MoveTo
method, which don't require source directory name:
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
类的静态方法.这样会更有效:
One more thought - if you don't need any additional info about files, besides names, then you can get file names only, without FileInfo
objects creation. Use static methods of Directory
and File
classes. That will be more efficient:
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);
}
这篇关于如何使用GetFile()获取文件夹中所有文件的文件信息?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!