[英]C# How to iterate through a list of files without using Directory.GetFiles() method
我有幾個將照片上傳到ftp服務器的安全攝像機。 這些凸輪中的某些凸輪在新的一天開始時以“ yyyymmdd”格式方便地創建子文件夾。 這很棒,並且可以在特定的日期輕松維護/刪除舊照片。 其他攝像頭不是很好,只是將圖片轉儲到一個巨大的文件夾中,因此很難刪除。
因此,我正在編寫一個C#Windows窗體程序,以使用FolderBrowserDialog轉到特定文件夾(源文件夾),並且我也使用FBD命名目標文件夾。 我正在使用標准過程,使用通過Directory.GetFiles()方法填充的字符串數組遍歷文件列表。 我使用文件的創建日期創建一個子文件夾(如果不存在)。 無論哪種情況,我都將文件移動到基於該日期的子文件夾。 在測試少量文件時,它的效果很好。
現在,我准備針對真實數據進行測試,並且我擔心某些文件夾中有成千上萬個文件,因此我將遇到很多內存問題和其他問題。 字符串數組如何處理如此大量的數據? 注意一個文件夾有超過28,000張圖片。 字符串數組可以處理這么多的FileInfo對象嗎?
那么我的問題是,如何在不使用字符串數組和Directory.GetFiles()方法的情況下遍歷給定文件夾中的文件列表? 盡管我確實想在Windows窗體環境中使用c#,但我很開放。 我有一個附加功能,可以刪除早於給定日期的照片,而不用移動它們。
非常感謝!
數千個文件名就可以了。 您可能會遇到數以百萬計的問題,但對於C#而言,數以千計不是什么大問題。 您可能會因為NTFS的工作方式而遇到性能問題,但是如果是這樣,則在C#中您將無能為力。 這是文件系統固有的問題。
但是,如果您真的想選擇此選項,則可以使用Directory.EnumerateFileSystemInfos()
來做得更好。 與GetFiles()
此方法有兩個好處:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.