मेरे पास एक प्रोजेक्ट है जो हर 5 मिनट में शेड्यूल किए गए कार्य के रूप में चलता है। अन्य चीजों के अलावा, परियोजना सैकड़ों छवियों के माध्यम से चलती है और उन्हें इस तरह से नेटवर्क ड्राइव पर कॉपी करती है।File.Copy() प्रदर्शन अगर फ़ाइल पहले से मौजूद हो सकती है
foreach (string file in Files)
{
string Control = Path.GetFileNameWithoutExtension(file);
File.SetAttributes(file, FileAttributes.Normal);
try
{
File.Copy(file, destinationFolder + "\\" + Control + @".pdf", false);
}
catch (Exception err)
{
Console.Writeline(err.ToString());
}
}
पाठ्यक्रम की "झूठी" तर्क यह बताती है कि अगर यह पहले से मौजूद है तो फ़ाइल को ओवरराइट नहीं करना है।
क्या पहले से मौजूद फ़ाइल की जांच करने से पहले यह तेज़/बेहतर अभ्यास है और फ़ाइल केवल मौजूद नहीं है तो कॉपी कर रहा है? (नीचे देखें)
foreach (string file in Files)
{
if (File.Exists(destinationFolder + "\\" + ControlNumber + ".pdf") == false)
{
File.SetAttributes(file, FileAttributes.Normal);
File.Copy(file, destinationFolder + "\\" + ControlNumber + @".pdf");
}
}
मेरा आंत मुझे बताता है कि पहला बेहतर तरीका है। हालांकि, मैं प्रोग्रामिंग के लिए अपेक्षाकृत नया हूं और यह जानना अच्छा लगेगा कि कौन सा बेहतर, तेज, अधिक व्यापक रूप से स्वीकार्य है, आदि ..
धन्यवाद!
संपादित करें: यह हो सकता है या पता है कि मैं करने के लिए कॉपी करने हूँ दूरस्थ ड्राइव/फ़ोल्डर छवि डेटा (छवियों के लाखों लोगों) के 4tb शामिल सहायक नहीं हो सकता है
http://ericlippert.com/2012/12/17/performance-rant/ –
यदि आप सभी मौजूदा फाइलों के पथ को टेक्स्ट या एक्सएमएल फ़ाइल में लिखते हैं तो बेहतर नहीं होगा, और उसके बाद जांचें पहले सूचीबद्ध करें, अगर यह उस सूची में नहीं है, तो निर्देशिका में कॉपी करें और फिर सूची में नई फ़ाइल जोड़ें? बस एक विचार :) –
आपने 'फ़ाइलें' संग्रह कैसे बनाया? –