フォルダ内のファイル数を取得する方法はありますか?拡張子が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");
幸運を!
+1 'GetExtension'はファイル名' EndsWith' ".jpg"をチェックするのではなく正しい方法です。 –
あなたはディレクトリにDirectoryInfo
オブジェクトを使用して、フィルタとそれにGetFiles()
を行うことができます。
のLINQのWhere
メソッドの使用:
Directory.GetFiles(path).Where(file => !file.EndsWith(".jpg")).Count();
@ John-89ありがとう、この方法については知らなかった。 – nan
@ John-89:なぜそれがお勧めではないか知っていますか?または詳細情報へのリンクがありますか?ちょっと興味があるんだけど。 –
@ John-89:これに私の頭の中に浮かび上がる大きな「引用要」記号があります。 –
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();
Em ...拡張子のない "abc.jpg"のファイルがあります... –
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();
彼は特定のファイルを除外しようとしているので、あなたは 'Contains'条件を否定する必要があります。 –
ちょうどその拡張子またはすべてのJPEGファイル(* .JPG、* .JPEG、*。JPE)を除外しますか? – adrianbanks
その特定の拡張子(.jpg) – jinsungy