मुझे वास्तव में एक बहुत ही अजीब समस्या है! मुझे आश्चर्य है कि समस्या ढांचे में है, ओएस या शायद यह सिर्फ मुझे है, चीजों को गलत समझना ...अविश्वसनीय अजीब फ़ाइल निर्माण समय समस्या
मेरे पास एक फ़ाइल है, जिसे बहुत समय पहले बनाया जा सकता है, मैं फ़ाइल का उपयोग करता हूं, और फिर मैं चाहता हूं इसका नाम बदलकर इसे संग्रहीत करें। फिर मैं एक नई फाइल बनाना चाहता हूं, उसी नाम के साथ पुरानी फ़ाइल के नाम से पहले इसका नाम बदल दिया गया था। काफी आसान!
समस्या जो वास्तव में मुझे पहेली करती है, यह है कि नव निर्मित फ़ाइल गलत "बनाई गई" -टिमस्टैम्प हो जाती है! यह एक समस्या है क्योंकि यह उस टाइमस्टैम्प है जिसका उपयोग मैं यह निर्धारित करने के लिए करना चाहता हूं कि एक नई फ़ाइल कब संग्रहित करें और बनाएं।
मैंने एक बहुत छोटा नमूना बनाया है जो समस्या को दिखाता है। नमूना काम करने के लिए, फाइल फ़ोल्डर में फ़ाइल 1.txt होना चाहिए। साथ ही, फ़ाइल विशेषता को समय पर भी सेट किया जाना चाहिए (उपलब्ध टूल्स में से एक के साथ, मैं Nomad.NET का उपयोग करता हूं)।
static void Main(string[] args)
{
// Create a directory, if doesnt exist.
string path = Path.GetDirectoryName(Application.ExecutablePath) + "\\Files";
Directory.CreateDirectory(path);
// Create/attach to the 1.txt file
string filename = path + "\\1.txt";
StreamWriter sw = File.AppendText(filename);
sw.WriteLine("testing");
sw.Flush();
sw.Close();
// Rename it...
File.Move(filename, path + "\\2.txt");
// Create a new 1.txt
sw = File.AppendText(filename);
FileInfo fi = new FileInfo(filename);
// Observe, the old files creation date!!
Console.WriteLine(String.Format("Date: {0}", fi.CreationTime.Date));
Console.ReadKey();
}
अंत में, मैं यह द्वारा के बाद फ़ाइल बनाए जाने के हल (गलत/वर्ष टाइमस्टैम्प के साथ), मैं इसे "मैन्युअल" FileInfo.CreationTime = DateTime.Now की स्थापना द्वारा बदल दिया है। – kaze