PDA

View Full Version : خواندن نام فایل های یک پوشه و هم نام کردن فایلهایی که در پوشه دیگر هستند با نام فایلهای خوانده شده



hossein16
چهارشنبه 25 بهمن 1391, 23:05 عصر
سلام
من دو پوشه دارم که در هر کدام تعداد مساوی عکس با پسوند jpg (اما از نظر محتوا و نام متفاوت)وجود دارد می خواهم برنامه ای بنویسم که در ان نام کلیه فایلهای پوشه1 با پسوند .jpg خوانده و فایلهای پوشه2 بدون تغییر محتوا هم نام فایلهای پوشه 1 شوند.
مشکلم اینجاست که نمی دانم چطور نام فایلها را بخوانم و متعاقب آن نام فایلهای پوشه 2 را تغییر دهم.
همچنین در پوشه 2 از کجا باید فهمید کدام فایل تغییر نام داده شده و نیاز به تغییر نام مجدد ندارد.
ممنون میشم راهنمایی ام کنید.

hossein16
پنج شنبه 26 بهمن 1391, 18:17 عصر
چگونه می توانم نام فایلهای موجود در یک پوشه را در یک آرایه ذخیره کنم؟

mehrdad1991h
پنج شنبه 26 بهمن 1391, 18:48 عصر
چگونه می توانم نام فایلهای موجود در یک پوشه را در یک آرایه ذخیره کنم؟

تعداد فایل ها با پسوند مد نظرت را جستجو کن تعدادشون را در بیار
یه ارایه با تعداد به دست امده ایجاد کن
با یک حلقه نام ها را در ارایه ذخیره کن
برای اون یکی فلدر هم تعداد را به دست بیار اگر برابر بود
با یک حلقه نام های موجود در ارایه را ذخیره نسبت بده به فایل

تو این روند دیگه نیازی نیست شما چک کنی ببینی فایلی تغییر نام داده شده یا خیر خودکار هر فایل یک بار تغییر نام داده میشه و میره کنار
برای تغییر نام فایل هم از متد move استفاده کن اینجوری :
System.IO.File.Move("oldfilename", "newfilename");

برای دریافت نام فایل های داخل یک پوشه هم از این استفاده کن
Path.GetFileName(fullPath);
چیزای دیگه ای هم هست مثل

DirectoryInfo dir = new DirectoryInfo(dirPath);
foreach (FileInfo file in dir.GetFiles())
Console.WriteLine(file.Name);
موفق باشید

hossein16
پنج شنبه 26 بهمن 1391, 19:00 عصر
Path.GetFileName(fullPath);


این دستور چه کاری انجام می دهد؟
چطور میتوانم با این نام فایلها را در آرایه قرار دهم؟
ممنون میشم راهنمایی کنید.

mehrdad1991h
پنج شنبه 26 بهمن 1391, 19:24 عصر
این دستور چه کاری انجام می دهد؟
چطور میتوانم با این نام فایلها را در آرایه قرار دهم؟
ممنون میشم راهنمایی کنید.

ببین این یه نمونه دقیقا برای کاری که شما میخواین بکنین

string[] a = new string [12];
DirectoryInfo di = new DirectoryInfo(@"C:\D\Ezal");
FileInfo[] Files = di.GetFiles("*.jpg");
int b = 0;

foreach (FileInfo fi in Files)
{
if (b < a.Length)
{
a[b] = Path.GetFileNameWithoutExtension(fi.Name);
b++;

}
}

فقط تنها کاری که لازمه بکنی اینه که من در کد بالا خودم دستی زدم string[] a = new string [12] مقدارش را 12 گذاشتم اینا خودت تو برنامه به دست بیار مقدارش را
همین کد را تریس کن میفهمی چی کار کنی

این
Path.GetFileNameWithoutExtension
و
Path.GetFileName
هر دو یه کار میکنن فقط دومی پسوند فایل را هم میده

موفق باشید