我有一個foreach語句是一部分這樣的功能:C#排除文件擴展從foreach語句
try
{
string pathToFiles = sourceTB.Text;
DirectoryInfo dirInfo = new DirectoryInfo(pathToFiles);
int i = 0;
foreach (var files in dirInfo.EnumerateFiles())
{
//Do stuff here
}
MessageBox.Show("Process Successful", "Completed");
}
catch
{
MessageBox.Show("Process failed", "Failed");
}
我希望能夠代碼,以便它會讀取所選文件夾的全部內容(這工作正常),但我正在努力,所以它會跳過任何具有特定文件擴展名的文件。
例如,如果該文件夾中的每個文件都是.txt文件,並且我想省略.jpg文件。
我已經嘗試了一些方法來實現這個功能,比如:
var allFilesFromFolder = Directory.GetFiles(pathToFiles);
var filesToExclude = Directory.GetFiles(pathToFiles, "*.jpg");
var filetoInclude = allFilesFromFolder.Except(filesToExclude);
這:
var files = Directory.GetFiles(pathToFiles).Where(name => !name.EndsWith(".jpg"));
但這兩把錯誤引入到在foreach循環中的代碼,並不會配合當循環通過文件。
有什麼辦法可以達到這個目的嗎?
他們在代碼中帶來什麼錯誤?請解釋 – Steve
究竟是什麼問題?你的代碼(至少是第二個變體)似乎沒問題。 –
[Directory.GetFiles某些擴展名]的可能重複(https://stackoverflow.com/questions/13301053/directory-getfiles-of-certain-extension) –