有沒有辦法在文件夾中獲取文件數,但我想排除帶擴展名JPG的文件?排除System.IO.Directory.GetFiles()中的文件擴展名
Directory.GetFiles("c:\\Temp\\").Count();
有沒有辦法在文件夾中獲取文件數,但我想排除帶擴展名JPG的文件?排除System.IO.Directory.GetFiles()中的文件擴展名
Directory.GetFiles("c:\\Temp\\").Count();
試試這個:
var count = System.IO.Directory.GetFiles(@"c:\\Temp\\")
.Count(p => Path.GetExtension(p) != ".jpg");
祝你好運!
您可以在目錄中使用DirectoryInfo
對象,並在其上做了GetFiles()
與過濾器。
使用LINQ的Where
方法:
Directory.GetFiles(path).Where(file => !file.EndsWith(".jpg")).Count();
@ John-89謝謝,不知道這種方式。 – nan 2011-01-28 19:57:46
@ John-89:你知道爲什麼不推薦?或者有更多信息的鏈接?只是好奇。 – 2011-01-28 20:15:30
@約翰 - 89:這張照片上有一個很大的'[引用需要]'的標誌。 – 2011-01-28 20:22:35
public static string[] MultipleFileFilter(ref string dir)
{
//determine our valid file extensions
string validExtensions = "*.jpg,*.jpeg,*.gif,*.png";
//create a string array of our filters by plitting the
//string of valid filters on the delimiter
string[] extFilter = validExtensions.Split(new char[] { ',' });
//ArrayList to hold the files with the certain extensions
ArrayList files = new ArrayList();
//DirectoryInfo instance to be used to get the files
DirectoryInfo dirInfo = new DirectoryInfo(dir);
//loop through each extension in the filter
foreach (string extension in extFilter)
{
//add all the files that match our valid extensions
//by using AddRange of the ArrayList
files.AddRange(dirInfo.GetFiles(extension));
}
//convert the ArrayList to a string array
//of file names
return (string[])files.ToArray(typeof(string));
}
應工作
亞歷
您可以使用LINQ '去哪兒' 條款,以過濾掉不需要的擴展名的文件。
您可以使用簡單的LINQ語句來清除JPG。
Directory.GetFiles("C:\\temp\\").Where(f => !f.ToLower().EndsWith(".jpg")).Count();
System.IO.Directory.GetFiles("c:\\Temp\\").Where(f => !f.EndsWith(".jpg")).Count();
您可以隨時使用LINQ。
return GetFiles("c:\\Temp\\").Where(str => !str.EndsWith(".exe")).Count();
string[] extensions = new string[] { ".jpg", ".gif" };
var files = from file in Directory.GetFiles(@"C:\TEMP\")
where extensions.Contains((new FileInfo(file)).Extension)
select file;
files.Count();
你想排除只是延長或全部JPEG文件(* .JPG,* .JPEG,* .jpe)? – adrianbanks 2011-01-28 19:49:27
只是特定的擴展名(.jpg) – jinsungy 2011-01-28 19:59:51