View Full Version : سوال: چگونگی کپی کردن File ها، Folder ها و SubFolder ها
ali_asg
چهارشنبه 28 مهر 1389, 14:49 عصر
سلام
من توی یه قسمتی از نرم افزارم باید یک پوشه رو با تمام محتویاتش از یه آدرس به یه آدرس دیگه کپی یا انتقال بدم . من هرچی گشتم فقط تونستم کدی رو پیدا کنم که بشه تمام فایل ها رو کپی کنه یعنی اگه تویه اون پوشه یه پوشه ی دیگه بود دیگه نمی شه کاریش کرد .
لطفا اگه میشه کمکم کنید . یا اگه منبعی دارین در اختیارم بزارین.
یه نمونه هم ساختم که ضمیمش کردم .
ممنون
Amir Oveisi
چهارشنبه 28 مهر 1389, 15:28 عصر
میتونین یک متد بنویسید که بصورت بازگشتی همه subfoledr ها رو کپی کنه.
cardano7
چهارشنبه 28 مهر 1389, 15:50 عصر
سلام
بعید می دونم این طوری باشه که میگید،
حتی در این صورت هم می توانید از دستورات cmd در داخل #C استفاده کنید.
ali_asg
چهارشنبه 28 مهر 1389, 16:10 عصر
میتونین یک متد بنویسید که بصورت بازگشتی همه subfoledr ها رو کپی کنه.
اگه میشه بیشتر توضیح بدین
Amir Oveisi
چهارشنبه 28 مهر 1389, 20:16 عصر
این مثال رو ببینید:
void GetFiles(string directory, ref List<string> filesList)
{
DirectoryInfo dir = new DirectoryInfo(directory);
if (dir.GetDirectories().Length == 0)
{
foreach (var file in dir.GetFiles())
{
filesList.Add(file.FullName);
}
}
else
{
foreach (var file in dir.GetFiles())
{
filesList.Add(file.FullName);
}
foreach (var folder in dir.GetDirectories())
{
GetFiles(folder.FullName, ref filesList);
}
}
}
تابع اگر در داخل خودش، خودش رو فراخوانی کنه، بهش میگن تابع بازگشتی یا Recursive.
موفق باشید
cardano7
پنج شنبه 29 مهر 1389, 06:09 صبح
اگه میشه بیشتر توضیح بدین
http://barnamenevis.org/forum/showthread.php?p=1131963
ali_asg
پنج شنبه 29 مهر 1389, 17:12 عصر
ممنون از توجه شما عزیزان . مشکل من حل شد . :بوس:
Salar Ashgi
جمعه 30 مهر 1389, 01:22 صبح
جهت انتقال فولدر :
System.IO.Directory.Move(path, "C:\\NewDir");
جهت کپی : با دستور زیر میتوانید تمام فایل های یک پوشه ، حتی فایلهای زیر فولدرهای یک فولدر را هم
بدست آورید و بعد از آن با دستور File.Copy میتوانید فایلها را کپی کنید ./
string[] files = System.IO.Directory.GetFiles(path, "*.*", System.IO.SearchOption.AllDirectories);
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.