यहाँ कोड मैं के साथ शुरुआत की है:नाम बदलने के बाद जावा में एक फ़ाइल की अंतिम संशोधित समय निर्धारित करने की कोशिश कर रहा है यह
long modifiedTime = [some time here];
File oldFile = new File("old_name.txt");
boolean renamed = oldFile.renameTo(new File("new_name.txt");
boolean timeChanged = oldFile.setLastModified(modifiedTime);
System.out.println("renamed: " + renamed);
System.out.println("time changed: " + timeChanged);
और उत्पादन मैंने देखा था:
renamed: true
time changed: false
लेकिन जब मैंने कोशिश की:
long modifiedTime = [some time here];
boolean renamed = new File("old_name.txt").renameTo(new File("new_name.txt"));
boolean timeChanged = new File("new_name.txt").setLastModified(modifiedTime);
System.out.println("renamed: " + renamed);
System.out.println("time changed: " + timeChanged);
यह ठीक काम करने लग रहा था,
renamed: true
time changed: true
क्यों कि दूसरा दृष्टिकोण से काम करता है यह है, और पहले एक नहीं करता है: इस निर्गम के साथ?
निश्चित रूप से इसे स्पष्ट करता है, धन्यवाद! हालांकि, यह एक बुरा एपीआई डिजाइन की तरह प्रतीत होता है! मुझे लगता है कि अगर मैं किसी फ़ाइल ऑब्जेक्ट पर नाम बदलता हूं, तो यह एक उत्परिवर्तनीय कॉल होगा जो वास्तव में फ़ाइल के फ़ाइल नाम को बदलता है, लेकिन मुझे लगता है कि यह नहीं है। –