如果文件目录为空c#

本文关键字:文件目录 如果 | 更新日期: 2023-09-27 18:10:57

所以我正在构建一个控制台应用程序,该应用程序具有列出目录中所有文件的功能,我想告诉它显示一条消息"目录为空",如果该文件夹中没有文件。我的代码正确地返回文件夹内容,但我不能让它显示我的文本信息,如果目录是空的,就像它忽略了if语句。有人能告诉我为什么不行吗?谢谢!

        Console.WriteLine(" Displaying Contents of Write Directory: ");
        Console.WriteLine(" ---------------------------------------");
        Console.WriteLine();
        string[] filePaths = Directory.GetFiles(writeDir);
        for (int i = 0; i < filePaths.Length; ++i)
        {
            if (i == 0)
            {
                Console.WriteLine();
                Console.WriteLine(" Directory is Empty!");
                Console.WriteLine();
                Console.ReadLine();
            }
            else
            {
                string path = filePaths[i];
                Console.WriteLine("File: " + System.IO.Path.GetFileName(path));
                Console.WriteLine();
            }
        }

如果文件目录为空c#

当没有文件时,它将无法到达您的if:

if ( filePaths.Length > 0 )
{
   for (int i = 0; i < filePaths.Length; ++i)
   {
      string path = filePaths[i];
      Console.WriteLine("File: " + System.IO.Path.GetFileName(path));
      Console.WriteLine();
   }
 }
 else{
   Console.WriteLine();
   Console.WriteLine(" Directory is Empty!");
   Console.WriteLine();
   Console.ReadLine();
 }
string[] filePaths = Directory.GetFiles(writeDir);
if (filePaths.Length == 0)
{
    Console.WriteLine();
    Console.WriteLine(" Directory is Empty!");
    Console.WriteLine();
    Console.ReadLine();
}
else
{
    for (int i = 0; i < filePaths.Length; ++i)
    {
        string path = filePaths[i];
        Console.WriteLine("File: " + System.IO.Path.GetFileName(path));
        Console.WriteLine();
    }
}

将检查数组大小的if语句从for循环中取出。for循环的条件是,除非file.Paths.Length返回一个大于0的数字,否则它不会触发,所以当目录中没有文件时,不会检查if语句。