मैं इतना है कि अन्य क्लोन सेवाओं फ़ाइल का उपयोग नहीं कर सकते हैं एक फ़ाइल लॉक करने के लिए कोशिश कर रहे हैं के माध्यम से अलग है। मैं फिर फ़ाइल पढ़ता हूं, और फिर समाप्त होने पर फ़ाइल को ले जाता हूं। FileShare.Delete
का उपयोग करके मूव की अनुमति है।लॉक किया जा रहा व्यवहार नेटवर्क शेयर
हालांकि बाद में परीक्षण में, हमने पाया है कि इस दृष्टिकोण हम एक साझा नेटवर्क को देख रहे हैं काम नहीं करता। मैं सराहना करता हूं कि मेरा दृष्टिकोण सबसे अच्छा नहीं हो सकता है, लेकिन मेरा विशिष्ट प्रश्न है:
स्थानीय फ़ाइल के विरुद्ध नीचे डेमो क्यों काम करता है, लेकिन नेटवर्क फ़ाइल के खिलाफ नहीं?
जितना अधिक विशिष्ट आप बेहतर हो सकते हैं, क्योंकि मुझे अपनी खोजों में बहुत कम जानकारी मिली है जो इंगित करता है कि नेटवर्क शेयर स्थानीय डिस्क पर अलग-अलग व्यवहार करते हैं।
string sourceFile = @"C:\TestFile.txt";
string localPath = @"C:\MyLocalFolder\TestFile.txt";
string networkPath = @"\\MyMachine\MyNetworkFolder\TestFile.txt";
File.WriteAllText(sourceFile, "Test data");
if (!File.Exists(localPath))
File.Copy(sourceFile, localPath);
foreach (string path in new string[] { localPath, networkPath })
{
using (FileStream fsLock = File.Open(path, FileMode.Open, FileAccess.ReadWrite, (FileShare.Read | FileShare.Delete)))
{
string target = path + ".out";
File.Move(path, target); //This is the point of failure, when working with networkPath
if (File.Exists(target))
File.Delete(target);
}
if (!File.Exists(path))
File.Copy(sourceFile, path);
}
संपादित करें: यह उल्लेख है कि यदि आप जबकि ताला जगह में है एक साझा नेटवर्क से फ़ाइल स्थानांतरित करने के लिए किसी अन्य नेटवर्क साझा करने के लिए, इच्छा, इस काम करता है लायक है। समस्या तब होती है जब में फ़ाइल को स्थानांतरित करते समय उसी फ़ाइल साझा करते समय फ़ाइल साझा होती है।
चेक। – Nayan
अनुमतियां जांच की गई हैं, और ठीक हैं। सक्रिय उपयोगकर्ता के पास निर्देशिका पर पूर्ण नियंत्रण है और साझा करें – MattH
किस तरह का ऑपरेटिंग सिस्टम शेयर प्रदान करता है? –