[英]how to check if i have At least one file *.bak in my folder?
如何檢查我的文件夾中是否至少有一個文件*.bak
?
您可以使用Directory.GetFiles()列出特定目錄中的所有文件。 第二個參數是要搜索的模式(包括通配符)。 這樣的事情應該做到:
var hasBak = Directory.GetFiles(yourdir, "*.bak").Length > 0;
Directory.GetFiles
是正確的,但如果使用的是C#4.0,則不是最佳解決方案,因為我們有:
bool exist = Directory.EnumerateFiles(@"C:\mydir", "*.bak").Any();
Directory.GetFiles
返回所有那些匹配的文件,並且您可以檢查Length
屬性。 但是,當我們對Directory.EnumerateFiles
調用Any
時,本質上我們得到了它的枚舉數和MoveNext
,只要在其中找到任何項,該方法就會返回(這樣一來,我們就不需要遍歷所有文件)。 我檢查了它們的實現,並測試:
Directory.EnumerateFiles(@"C:\Windows", "*.log").Any();
GetFiles
時間是EnumerateFiles
4倍(運行它們10000次,用StopWatch
測量)。
好了,您可以使用Directory.GetFiles(directory. "*.bak")
獲取bak文件的列表,然后只需檢查長度是否為0。
if (Directory.GetFiles(directory, "*.bak").Length == 0)
{
// Complain to the user or whatever you want to do
}
public bool IsAtleastOneFilePresent()
{
string[] filePaths = Directory.GetFiles(@"c:\MyDir\", "*.bak");
if(filePaths.Length > 0) return true; else return false;
}
string[] files = Directory.GetFiles(@"c:\SomeDirectory\", "*.bak");
並確保文件長度> 0
使用Directory.GetFiles
Directory.GetFiles([dir], "*.bak")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.