c# - 如何返回包含文件的文件夹列表?

标签 c# .net system.io.fileinfo

我想知道如何返回包含文件的文件夹列表。

因为我无法返回这两个列表...也无法将这两种类型都放入列表中。

    public List<DirectoryInfo> GetTopFolders()
    {
        List<DirectoryInfo> Folders = new List<DirectoryInfo>();
        List<FileInfo> Files = new List<FileInfo>();

        System.IO.DirectoryInfo di = new System.IO.DirectoryInfo("C://inetpub//wwwroot//Files//");
        di.GetDirectories();
        System.IO.FileInfo[] fiArr = di.GetFiles();

        foreach (DirectoryInfo t in di.GetDirectories())
        {
            Folders.Add(t);
            foreach (FileInfo f in di.GetFiles())
            {
                Files.Add(f);
            }
        }
        return Folders;
    }

这是我实际使用的代码。

最佳答案

嗯,FileInfo 和 DirectoryInfo 都继承自 FileSystemInfo .因此,您可以改为维护该类型的列表,然后一起返回所有内容:

public List<FileSystemInfo> GetTopFoldersAndFiles()
{
    List<FileSystemInfo> FilesAndFolders = new List<FileSystemInfo>();

    System.IO.DirectoryInfo di = new System.IO.DirectoryInfo("C://inetpub//wwwroot//Files//");
    di.GetDirectories();
    System.IO.FileInfo[] fiArr = di.GetFiles();

    foreach (DirectoryInfo t in di.GetDirectories())
    {
        FilesAndFolders.Add(t);
        foreach (FileInfo f in di.GetFiles())
        {
            FilesAndFolders.Add(f);
        }
    }
    return FilesAndFolders;
}

当然,您可能需要在根据每个项目的类型使用此对象的代码中进行一些条件处理。

关于c# - 如何返回包含文件的文件夹列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10124434/

相关文章:

c# - 为什么 LINQ 扩展以非常难以阅读的方式编写?

.net - FileInfo.IsReadOnly 与 FileAttributes.ReadOnly

c# - FileInfo 对象属性问题 - C#?

C# 组合框不显示项目

c# - 无法删除强制转换事件处理程序

c# - 使用 Fluent NHibernate 和 MVC 3 的 SqlDateTime 溢出

.net - 如何在.net windows应用程序中实现 'undo'操作?

c# - 如何通过混合值和键将字典转换为列表?

c# - 如何创建基于 HTTP header 的自定义身份验证机制?

C# 在不使用 System.IO.FileInfo 的情况下获取文件属性