प्रश्न के समान, मैं एक गंतव्य से एक फ़ोल्डर संरचना की प्रतिलिपि बना रहा हूं और इसे दूसरे पर डुप्लिकेट कर रहा हूं। पुराने धागे पर पोस्ट करने के लिए खेद है, लेकिन यह किसी के लिए उपयोगी हो सकता है जो यहां समाप्त होता है।
मान लीजिए कि हमारे पास एक ऐसा एप्लिकेशन है जो स्टैंडअलोन है, और हमें फ़ोल्डर फ़ोल्डर को इनपुट फ़ोल्डर से आउटपुट फ़ोल्डर में कॉपी करने की आवश्यकता है। इनपुट फ़ोल्डर और आउटपुट फ़ोल्डर हमारे अनुप्रयोग की मूल निर्देशिका में है।
हम इस तरह (संरचना हम कॉपी करना चाहते हैं) इनपुट फ़ोल्डर के लिए एक DirectoryInfo बना सकते हैं:
DirectoryInfo dirInput = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + "\\Input\\");
हमारी आउटपुट फ़ोल्डर स्थान एक स्ट्रिंग में संग्रहित किया जा सकता है।
string dirOutput = AppDomain.CurrentDomain.BaseDirectory + "\\Output\\";
यह रिकर्सिव विधि हमारे लिए बाकी को संभालना चाहिए।
public static void ProcessDirectories(DirectoryInfo dirInput, string dirOutput)
{
string dirOutputfix = String.Empty;
foreach (DirectoryInfo di in dirInput.GetDirectories())
{
dirOutputfix = dirOutput + "\\" + di.Name);
if (!Directory.Exists(dirOutputfix))
{
try
{
Directory.CreateDirectory(dirOutputfix);
}
catch(Exception e)
{
throw (e);
}
}
ProcessDirectories(di, dirOutputfix);
}
}
इस विधि को आसानी से भी फ़ाइलों को संभालने के लिए संशोधित किया जा सकता है, लेकिन मैं अपने प्रोजेक्ट के लिए मन में केवल फ़ोल्डरों के साथ यह बनाया गया है।
अब हम सिर्फ हमारे dirInput और dirOutput के साथ विधि को कॉल करते हैं।
ProcessDirectories(dirInput, dirOutput);
स्रोत
2015-02-18 01:29:20
सबसे आसान तरीका: http://stackoverflow.com/questions/58744/best-way-to-copy-the-entire-contents-of-a-directory-in-c-sharp –
का चयन करें [ यह उत्तर] (https://stackoverflow.com/a/1147243) तो यह भविष्य के आगंतुकों के लिए शीर्ष पर आता है। वर्तमान में चयनित उत्तर अनावश्यक रूप से जटिल और भ्रामक है। – jnm2