找不到文件时如何处理返回异常的linq语句
How to handle linq statement returning exception when no file found
我有这段代码可以获取最近修改的文件
DirectoryInfo dirInfo = new DirectoryInfo(directoryPath);
string partialFileName = "partialFileName";
FileInfo recentlyModFile = (from files in dirInfo.GetFiles(partialFileName + "*") orderby files.LastWriteTime descending select files).First();
担心的是,当没有符合条件的文件时,它会 returns 异常,这显然是必然发生的,我正在寻找处理相同问题的方法。
我尝试将上面的代码放在 try catch 块中,但这没有帮助。如果有人能让我知道如何解决这个问题,那将会很有帮助。
谢谢
您可以使用 FirstOrDefault()
而不是 First()
First()
如果没有结果数据会抛出异常
FirstOrDefault()
returns 如果没有结果数据则默认值(空)。
FileInfo recentlyModFile = (from files in dirInfo.GetFiles(partialFileName + "*") orderby files.LastWriteTime descending select files).FirstOrDefault();
我有这段代码可以获取最近修改的文件
DirectoryInfo dirInfo = new DirectoryInfo(directoryPath);
string partialFileName = "partialFileName";
FileInfo recentlyModFile = (from files in dirInfo.GetFiles(partialFileName + "*") orderby files.LastWriteTime descending select files).First();
担心的是,当没有符合条件的文件时,它会 returns 异常,这显然是必然发生的,我正在寻找处理相同问题的方法。
我尝试将上面的代码放在 try catch 块中,但这没有帮助。如果有人能让我知道如何解决这个问题,那将会很有帮助。
谢谢
您可以使用 FirstOrDefault()
而不是 First()
First()
如果没有结果数据会抛出异常
FirstOrDefault()
returns 如果没有结果数据则默认值(空)。
FileInfo recentlyModFile = (from files in dirInfo.GetFiles(partialFileName + "*") orderby files.LastWriteTime descending select files).FirstOrDefault();