1

我有以下代码可以正常工作。我要做的(一次性)是检查目录是否存在,如果存在,我想检查文件夹中是否存在文件。如果是,则返回 Y,否则返回 N:

string s = new DirectoryInfo("C:\\EXP_Reports\\36000").Exists
   ? new DirectoryInfo("C:\\EXP_Reports\\36000").GetFiles("EXP Report #36001.pdf")
       .Any() ? "Y" : "N"
   : "N";

我想知道上面的代码是否可以进一步优化。请注意,我想在一份声明中做到这一点。

4

3 回答 3

7

为什么不简单地使用File.Exists.

bool q = File.Exists(@"C:\EXP_Reports\36000\EXP Report #36001.pdf");

请参阅http://msdn.microsoft.com/en-us/library/system.io.file.exists.aspx

我还更改了代码以使用 abool而不是string包含 Y 或 N的 a。

此外,使用逐字字符串文字@"..."会更好地阅读。

于 2013-01-28T17:51:35.487 回答
2

采用

System.IO.Directory.Exists("...");

System.IO.File.Exists("...");

无需实例化任何东西。

如果只需要检查文件是否存在,则不需要检查目录是否存在。

于 2013-01-28T17:53:05.530 回答
0

你不能用string s = File.Exists("C:\\EXP_Reports\\36000\\EXP Report #36001.pdf") ? "Y" : "N";吗?

于 2013-01-28T17:53:08.270 回答