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