Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 报告目录统计数据_C#_Asp.net_Excel - Fatal编程技术网

C# 报告目录统计数据

C# 报告目录统计数据,c#,asp.net,excel,C#,Asp.net,Excel,我需要创建一个小型C#控制台应用程序,以便在本地计算机上的目录上运行报告。报告将是excel文档,包含3列,包括:列中每个文件夹的名称、文件夹是否包含任何数据、文件夹是否包含上次更新时的数据。我目前的想法是一个小型C#控制台应用程序,它读取每个文件夹中的目录,并执行这些测试,一次创建一行。我对C#相当陌生,不知道如何才能做到这一点。我尝试了以下代码: static void Main(string[] args) { string[] filePaths

我需要创建一个小型C#控制台应用程序,以便在本地计算机上的目录上运行报告。报告将是excel文档,包含3列,包括:列中每个文件夹的名称、文件夹是否包含任何数据、文件夹是否包含上次更新时的数据。我目前的想法是一个小型C#控制台应用程序,它读取每个文件夹中的目录,并执行这些测试,一次创建一行。我对C#相当陌生,不知道如何才能做到这一点。我尝试了以下代码:

static void Main(string[] args)
        {
            string[] filePaths = Directory.GetFiles(@"C:/TestFolder/");

            foreach (string value in filePaths)
            {
                Console.WriteLine(value);



            }
        }
谢谢

您应该:

  • 使用
    DirectoryInfo
    FileInfo
    而不是
    Directory
    File
    (提供的信息不仅仅是文件名)
  • 使用
    枚举文件
    而不是
    获取文件
    (枚举文件而不是一次检索所有文件)
  • 对每个检索到的
    FileInfo
    执行递归操作,其中
    属性中包含
    目录
    属性
因此,大致如下(代码直接从头部开始,未经编译和测试):


我在这里不做任何清理输出的工作,而是使用一个简单的字符串数组来清理内容,但是可以随意清理

不考虑子文件夹:

    static void Main(string[] args)
    {
        DirectoryInfo di = new DirectoryInfo("c:\\offTopic");
        var data = di.EnumerateDirectories()
            .Select(a => 
                new string[] 
                {   a.Name, 
                    "" + (a.EnumerateFiles().Count() > 0), 
                    "" + a.EnumerateFileSystemInfos().Max(b => b.LastWriteTime) 
                });

       foreach (var x in data)
       {
           Console.WriteLine(string.Join(",", x));
       }

    }

然后,您必须将这些内容写入一个后缀为CSV(逗号分隔值)的文件,该文件可以由Excel打开

是否必须递归检查子文件夹?没有子文件夹。我只需要记录顶层文件夹的名称,并检查它们是否为空或是否包含数据。这将返回一个System.InvalidOperationException was unhandled Message=Sequence不包含元素异常。知道为什么吗?@Bradley也许你的文件夹里没有目录?只要目录存在,我就一直在为我工作。
    static void Main(string[] args)
    {
        DirectoryInfo di = new DirectoryInfo("c:\\offTopic");
        var data = di.EnumerateDirectories()
            .Select(a => 
                new string[] 
                {   a.Name, 
                    "" + (a.EnumerateFiles().Count() > 0), 
                    "" + a.EnumerateFileSystemInfos().Max(b => b.LastWriteTime) 
                });

       foreach (var x in data)
       {
           Console.WriteLine(string.Join(",", x));
       }

    }