c# - 如何使用 GetFile() 获取文件夹中所有文件的文件信息?

标签 c# file-io

我不知道我的错误是什么。

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 说这是错误:

System.IO.DirectoryInfo.GetFiles(textBoxPath.Text);

最佳答案

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 对象。使用 DirectoryFile 类的静态方法。这样会更有效率:

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);             
} 

关于c# - 如何使用 GetFile() 获取文件夹中所有文件的文件信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17620076/

相关文章:

插件 DLL 的本地化资源的 c# 路径

java - 在屏幕上显示保存到文件的数据

c# - ASP.NET MVC 助手,独立于 MVC 版本

c# - Unity XML 从 xml 列表中获取列表值到 c# 列表

java.io.FileNotFoundException : File is not a normal file. 露天

JavaScript/Firefox 写入本地驱动器上的文本文件示例

java - 从文本文件实现数据(迷宫)

c++ - 使用不带对象的类函数

c# - 更高效的半正弦函数

c# - 关于在 C# 中构建 graphQL 查询的建议