پیدا کردن فرمت خاص در درایو های مختلف
من می خوام با استفاده از C# فرمتی خاص(برای مثال jpg ) تو تمام درایوا جستجو بشن
اگه کدی هست ممنون میشم راهنمایم کنید.
در واقع همچین دستوری ولی PATH کل درایو ها و فولدرای هارد باشه
string[] jpg = Directory.GetFiles(path1, "*.jpg");
ممنون میشم اگه کسی راهنمایم کنه !
نقل قول: پیدا کردن فرمت خاص در درایو های ویندوز
using System;
using System.IO;
class App
{
public static void Main()
{
// Specify the directory you want to manipulate.
string path = @"c:\";
string searchPattern = "c*";//"*.jpg"
//"*.bmp"
//p*.mpg"
DirectoryInfo di = new DirectoryInfo(path);
DirectoryInfo[] directories =
di.GetDirectories(searchPattern, SearchOption.TopDirectoryOnly);
FileInfo[] files =
di.GetFiles(searchPattern, SearchOption.TopDirectoryOnly);
Console.WriteLine(
"Directories that begin with the letter \"c\" in {0}", path);
foreach (DirectoryInfo dir in directories)
{
Console.WriteLine(
"{0,-25} {1,25}", dir.FullName, dir.LastWriteTime);
}
Console.WriteLine();
Console.WriteLine(
"Files that begin with the letter \"c\" in {0}", path);
foreach (FileInfo file in files)
{
Console.WriteLine(
"{0,-25} {1,25}", file.Name, file.LastWriteTime);
}
} // Main()
} // App()
very good
نقل قول: پیدا کردن فرمت خاص در درایو های ویندوز
آرگومان سوم متد GetFiles را تنظیم کنید. البته در حین اجرا ممکنه access denied مواجه بشید.
برای جلوگیری از خطا میتونید از متد زیر استفاده کنید:
private List<string> getFiles(string path, string pattern)
{
List<string> f = new List<string>();
try
{
string[] subDir = Directory.GetDirectories(path);
f = Directory.GetFiles(path, pattern).ToList();
foreach (string dir in subDir)
{
f.AddRange(getFiles(dir, pattern));
}
}
catch
{ }
return f;
}
طریقه استفاده listBox1.DataSource = this.getFiles("c:\\", "*.jpg");
نقل قول: پیدا کردن فرمت خاص در درایو های ویندوز
مرسی ممنون از جوابتون !
ولی من می خوام تمام درایوای ویندوز سرچ بشن نه فقط 1 مسیر یا درایو خاص !
نقل قول: پیدا کردن فرمت خاص در درایو های ویندوز
در یک حلقه به ازای هر درایو جستجو رو انجام بدید:
List<string> AllFiles = new List<string>();
foreach (System.IO.DriveInfo drive in System.IO.DriveInfo.GetDrives())
{
AllFiles.AddRange(getFiles(drive.Name, "*.jpg"));
}
listBox1.DataSource = AllFiles;