如何使用GetFile()获取文件夹中所有文件的文件信息? [英] How can i get the fileinfo of all files in a folder with GetFile()?

查看:128
本文介绍了如何使用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对象.使用DirectoryFile类的静态方法.这样会更有效:


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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆