[英]how to check if Directory.EnumerateFiles does not produce any results
我有一個功能,檢查特定文件夾中是否存在文件,如果文件具有主數據庫中不存在的數據,我將該數據寫入主數據庫並刪除我使用Directory.EnumerateFiles獲取列表的文件的文件,然后我遍歷此列表,以檢查它們是否存在於數據庫中,我想從函數返回,如果列表為空如何檢查我得到的列表是否為空,如果我調試,文件夾沒有它顯示的文件枚舉沒有產生結果。
private void GetListOfFiles()
{
string sourceDirectory = pathOfXmlFiles;
if (!Directory.Exists(sourceDirectory))
{
return;
}
var xmlFiles = Directory.EnumerateFiles(sourceDirectory, "*.xml");
foreach (var item in xmlFiles)
{
ReadXmlFile(item);
}
foreach (var item in xmlFiles)
{
if (_writtenToDb)
{
File.Delete(item);
}
}
}
我使用不同的線程檢查是否存在這些文件,該線程具有每25秒觸發一次的計時器,我永遠不會停止計時器,這會導致內存泄漏嗎?
你不需要做任何事情。 如果xmlFiles
為空,則兩個foreach
循環都不會執行任何操作,因為沒有要迭代的對象。
但是,如果您確實需要在沒有文件的情況下顯式返回,請使用以下命令:
if(!xmlFiles.Any())
return;
別忘了using System.Linq;
添加using System.Linq;
在源文件的頂部。
由於您在返回的文件上多次枚舉,我建議您使用Directory.GetFiles
。 這將返回包含所有文件的數組。 這將避免多次命中磁盤以查詢現有文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.