PDA

View Full Version : سوال: چگونگی کپی کردن File ها، Folder ها و SubFolder ها



ali_asg
چهارشنبه 28 مهر 1389, 13:49 عصر
سلام

من توی یه قسمتی از نرم افزارم باید یک پوشه رو با تمام محتویاتش از یه آدرس به یه آدرس دیگه کپی یا انتقال بدم . من هرچی گشتم فقط تونستم کدی رو پیدا کنم که بشه تمام فایل ها رو کپی کنه یعنی اگه تویه اون پوشه یه پوشه ی دیگه بود دیگه نمی شه کاریش کرد .

لطفا اگه میشه کمکم کنید . یا اگه منبعی دارین در اختیارم بزارین.
یه نمونه هم ساختم که ضمیمش کردم .


ممنون

Amir Oveisi
چهارشنبه 28 مهر 1389, 14:28 عصر
میتونین یک متد بنویسید که بصورت بازگشتی همه subfoledr ها رو کپی کنه.

cardano7
چهارشنبه 28 مهر 1389, 14:50 عصر
سلام
بعید می دونم این طوری باشه که میگید،
حتی در این صورت هم می توانید از دستورات cmd در داخل #C استفاده کنید.

ali_asg
چهارشنبه 28 مهر 1389, 15:10 عصر
میتونین یک متد بنویسید که بصورت بازگشتی همه subfoledr ها رو کپی کنه.


اگه میشه بیشتر توضیح بدین

Amir Oveisi
چهارشنبه 28 مهر 1389, 19: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, 05:09 صبح
اگه میشه بیشتر توضیح بدین

http://barnamenevis.org/forum/showthread.php?p=1131963

ali_asg
پنج شنبه 29 مهر 1389, 16:12 عصر
ممنون از توجه شما عزیزان . مشکل من حل شد . :بوس:

Salar Ashgi
جمعه 30 مهر 1389, 00:22 صبح
جهت انتقال فولدر :


System.IO.Directory.Move(path, "C:\\NewDir");

جهت کپی : با دستور زیر میتوانید تمام فایل های یک پوشه ، حتی فایلهای زیر فولدرهای یک فولدر را هم
بدست آورید و بعد از آن با دستور File.Copy میتوانید فایلها را کپی کنید ./


string[] files = System.IO.Directory.GetFiles(path, "*.*", System.IO.SearchOption.AllDirectories);