如果文件目录为空C#

时间:2014-07-01 19:57:05

标签: c# file if-statement directory

所以我正在构建一个控制台应用程序,它具有列出目录中所有文件的功能,如果该文件夹中没有文件,我想告诉它显示“目录为空”的消息。我的代码正在正确地返回文件夹内容,但如果目录为空,我无法显示我的文本消息,就像它忽略了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();
            }
        }

3 个答案:

答案 0 :(得分:4)

当没有文件时,它无法到达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();
 }

答案 1 :(得分:2)

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

答案 2 :(得分:0)

使用if语句检查for循环中数组的大小。 你的for循环条件是这样的,除非file.Paths.Length返回一个大于0的数字,否则它不会触发,因此当目录中没有文件时,不会检查if语句。