2016-04-18 87 views
0

我有c#代碼從文件夾中獲取pdf文件。如何從C文件夾中的文件夾過濾日期文件#

string[] pdfFiles = Directory.GetFiles(EnvSettingsTools.FilePath.ToString(), "*.pdf") 
           .Select(path => Path.GetFileNameWithoutExtension(path)) 
           .ToArray(); 

如何使用此代碼通過日期過濾來獲取文件。文件格式將是

LondoPage 20160301.pdf 

我需要過濾文件的結尾日期的文件。即如果我通過日期'20160301',應該選擇上述文件。

+0

所以,你如果那裏有指定日期的GetFiles(.. * .PDF),改變的* .pdf爲 「* 20160301.pdf」 – BugFinder

+0

@BugFinder。如果有100個文件,我怎麼概括它? – Sarat

+0

它仍然說* .pdf它是一般..我不明白你的問題..你有答案都提供給你的方法來做到這一點。把.pdf放在最後總會給你我們的答案 – BugFinder

回答

1

嘗試

var date = "20160301"; 
string[] pdfFiles = Directory.GetFiles(EnvSettingsTools.FilePath.ToString(), "*.pdf") 
          .Select(path => Path.GetFileNameWithoutExtension(path)) 
          .Where(f => f.EndsWith(date)) 
          .ToArray(); 
+1

而不是包含,使用EndsWith – hungryMind

+0

謝謝!理解這裏實際需要的是什麼 –

+0

@AndreyMarchuk是相當棘手的。感謝它的工作。 :-) – Sarat

1

這將讓文件名以日期爲止您傳遞的過濾器:

var date = "20160301"; 
string[] pdfFiles = Directory.GetFiles(EnvSettingsTools.FilePath.ToString(), "*.pdf") 
            .Select(Path.GetFileNameWithoutExtension) 
            .Where(f => f.EndsWith(date)) 
            .ToArray(); 
0

我不明白你想要的結果,但我會做一個受過教育的猜測,你需要能夠訂購或過濾文件夾內容。這可以通過一種以上的方式實現。我將提出一個解決問題的方法

 if (!Directory.Exists(pathToFiles)) return; 

    DirectoryInfo di = new DirectoryInfo(pathToFiles); 
    FileSystemInfo[] files = di.GetFileSystemInfos(); 
    var orderedFiles = files.OrderBy(f => f.CreationTime); 

    var filteredFileByDate = orderedFiles.Where(f => f.FullName.ToLowerInvariant().Split('/').Last().Contains("filterText")); 

隨着您將獲得特定的屬性命令所有文件的命令文件,在這種情況下,我選擇了創建日期。

使用過濾的文件,您將收到一個或多個文件的集合,這些文件符合您的條件。您的標準越精確,您獲得的結果就越少。

希望它能幫助;)

相關問題