PDA

View Full Version : بدست آوردن فایل



milad95
جمعه 19 آبان 1391, 18:41 عصر
سلام دوستان عزیز:قلب:
میخواستم یکی راهنمایی کنه چطوری میتونم هرچی فایل بافرمت دلخواه مثلا.datتویه پوشه ی دلخواه که میخوام بدست بیارم
مثلا:
ادرس پوشه:m:/milad
هرچی فایل با فرمت .dat هست بدست بیاره

مهرداد صفا
جمعه 19 آبان 1391, 19:16 عصر
سلام
با متود Directory.GetFiles. به این صورت:

string[] DatFiles=System.IO.Directory.GetFiles(@"c:\windows\","*.bat");
//یا برای تمام زیرشاخه ها
DatFiles=System.IO.Directory.GetFiles(@"C:\windows\","*.dat",System.IO.SearchOption.AllDirectories);

موفق باشید.

milad95
جمعه 19 آبان 1391, 23:52 عصر
اگه بخوام فایلی که پیداشد که فرضابافرمت .datباشه تویه تکست باکس بیاره بایدچیکارکنم؟

arefba
شنبه 20 آبان 1391, 00:10 صبح
خروجی تابع یه کالکشن هست که میتونی با حلقه for-each اون رو درون یک لیست باکس یا تکس باکسی که شما میخواید پیاده کنید

milad95
شنبه 20 آبان 1391, 00:16 صبح
:متفکر::ناراحت:نفهمیدم بیشترتوضیح بدید

MrsiLeNt
شنبه 20 آبان 1391, 02:24 صبح
همین متد GetFiles که فراخونی میکنین خروجی یک آرایه رشته ای میده. پس شما میتونین یک آرایه رشته ای تعریف کنین و خروجی getfiles رو به آرایه تون نسبت بدین :
string[] FileName = Directory.GetFiles("Masir", "*.Jpg OR *.exe ya har chizi");
حالا خیلی راحت فقط کافیه داخل عناصر آرایه FileName بچرخیم و در هر بار چرخش به لیست باسمون مقدار رو اضافه کنیم :
foreach (string Item in FileName)
listBox1.Items.Add(Item);

milad95
شنبه 20 آبان 1391, 14:28 عصر
:قلب:مرسی دوست عزیز،ولی دراینجا باید تغیریبا ادرس دقیق داده بشه مثلا من میخوام هرچی فایل هست باهرفرمتی نشون داده بشه یعنی اگه من ادرس

string[] FileName = Directory.GetFiles(Environment.GetFolderPath(Envir onment.SpecialFolder.ApplicationData) + "\\milad", "*.exe");
بدم اگه داخل پوشه miladیه پوشه دیگه هم باشه خودبرنامه داخل اون پوشه رهم چک کنه یعنی هرچی که داخل پوشه miladهست حتی اگه داخلش چنتاپوشه باشه،آیامیشه همچین کاری کرد؟لطفایکی کمک کنه:قلب:مرسی ازراهنماییتون

مهرداد صفا
شنبه 20 آبان 1391, 18:15 عصر
:قلب:مرسی دوست عزیز،ولی دراینجا باید تغیریبا ادرس دقیق داده بشه مثلا من میخوام هرچی فایل هست باهرفرمتی نشون داده بشه یعنی اگه من ادرس

string[] FileName = Directory.GetFiles(Environment.GetFolderPath(Envir onment.SpecialFolder.ApplicationData) + "\\milad", "*.exe");
بدم اگه داخل پوشه miladیه پوشه دیگه هم باشه خودبرنامه داخل اون پوشه رهم چک کنه یعنی هرچی که داخل پوشه miladهست حتی اگه داخلش چنتاپوشه باشه،آیامیشه همچین کاری کرد؟لطفایکی کمک کنه:قلب:مرسی ازراهنماییتون
سلام
اگر دقت میکردید گفتم برای جستوجو در زیر شاخه ها به عنوان سومین آرگومنت System.IO.SearchOption.AllDirectories را ارسال کنید.
در مورد الگوی جستوجو (search pattern) هم اگر اطلاعات خواستید تاپیک زیر شاید کمک کرد.
الگوی جستجو در فایل ها (http://barnamenevis.org/archive/index.php/t-366259.html)
موفق باشید.

milad95
شنبه 20 آبان 1391, 22:41 عصر
string[] FileName = Directory.GetFiles(Environment.GetFolderPath(Envir onment.SpecialFolder.ApplicationData) + "\\milad", "*.exe");
سلام دوست عزیز؛الان اگه بخوام همین مسیر که مشخص کردم زیرشاخه هاروجستجوکنه چطوری باید کد اون روبنویسم؟

mousa1992
یک شنبه 21 آبان 1391, 00:19 صبح
سلام


void CopyDirectory(DirectoryInfo source, DirectoryInfo destination)
{
if (!destination.Exists)
destination.Create();
// Copy all files.
FileInfo[] files = source.GetFiles();
foreach (FileInfo file in files)
{
file.CopyTo(destination);
}

// Process subdirectories.
DirectoryInfo[] dirs = source.GetDirectories();
foreach (DirectoryInfo dir in dirs)
{
// Get destination directory.
string destinationDir = Path.Combine(destination.FullName, dir.Name);
// Call CopyDirectory() recursively.
CopyDirectory(dir, new DirectoryInfo(destinationDir));
}
}



دوست عزیز این ی متد برای کپی کردن تمام فایل های موجود در یک پوشه هست که البته subDirectory هارو هم برسی میکنه این متد به صورت بازگشتی هست و زمانی خاتمه پیدا میکنه که هیچ پوشه ای پیدا نکنه ( این مربوط به کپی کردن شما با کمی تغییر به هدفتون میرسید )
موفق باشی