2013-02-15 9 views
6

निम्न कोड में फ़ाइल की तिथि क्यों नहीं बदली गई है?इस फ़ाइल के लिए LastModified (समय) काम क्यों सेट नहीं करता है?

fLocal.location = सी में मौजूदा फ़ाइल: \

fLocal.date = दिनांक लांग

boolean x = new File(fLocal.location).setLastModified(Long.parseLong(fLocal.date)); 
System.out.println("Changed: " + x); 
System.out.println(new Date(new File(fLocal.location).lastModified())); 
System.out.println(new Date(Long.parseLong(fLocal.date))); 

आउटपुट में स्थापित करने के लिए:

Changed: false 
Fri Feb 15 23:02:51 CET 2013 
Fri Feb 15 22:49:34 CET 2013 
+3

पर आपके पास कोड की अनुमति है? क्या फाइल खुली स्थिति में है? – JoshDM

+4

क्या आप वर्तमान में इस समय फ़ाइल को किसी भी अन्य एप्लिकेशन के साथ पढ़ रहे हैं? ये सभी आइटम हैं जो आपको फ़ाइल के समय को बदलने से रोक सकते हैं। पाठ की एक पंक्ति के साथ एक साधारण सादा पाठ फ़ाइल बनाएं, इसे सहेजें और संपादक से बाहर निकलें। फिर उस फ़ाइल का उपयोग करने का प्रयास करें। सुनिश्चित करें कि आप वास्तव में एक वैध फ़ाइल सुनिश्चित करने के लिए इसे बदलने का प्रयास करने से पहले अपने फ़ाइल ऑब्जेक्ट पर 'मौजूद()' को कॉल करें। – JoshDM

+0

सी के तहत सीधे काम करना एक विशेष बुरा विचार है: \ क्योंकि ए) हाल ही के विंडोज संस्करणों में आपको फ़ाइलों और निर्देशिकाओं को स्पर्श/परिवर्तित नहीं करना चाहिए b) आप आकस्मिक रूप से ओएस फाइलों को ओवरराइट या हटा सकते हैं (जैसे बूट कॉन्फ़िगरेशन फ़ाइल)। – Ingo

उत्तर

2

पहले से मेरी टिप्पणी से, इन चेकों का पालन करें:

  1. क्या आपके कोड में फ़ाइल के लिए पहुंच है?
  2. क्या फ़ाइल खुली स्थिति में है?
  3. क्या आप वर्तमान में इस समय किसी भी अन्य एप्लिकेशन के साथ फ़ाइल पढ़ रहे हैं (या लिख ​​रहे हैं)?

ये सभी आइटम हैं जो आपको फ़ाइल के समय को बदलने से रोक सकते हैं।

टेक्स्ट की एक पंक्ति के साथ एक साधारण सादा पाठ फ़ाइल बनाएं, इसे सहेजें और संपादक से बाहर निकलें। फिर अपने आवेदन में उस फ़ाइल का उपयोग करने का प्रयास करें। सुनिश्चित करें कि आप वास्तव में एक वैध फ़ाइल सुनिश्चित करने के लिए अपना समय बदलने के पहले अपने FileObject पर exists() पर कॉल करें।

2

अपने स्थानीय पर अपने कोड परीक्षण किया गया और यह काम करता ... मैं अपने सिस्टम पर बहुत पुरानी फाइल की संशोधित तिथि बदल ...

-See फ़ाइल कहीं और किया जा रहा है अगर ... की जाँच करें अगर आपके पास फ़ाइल

import java.io.File; 
import java.io.IOException; 
import java.util.Date; 

class Test 
{ 
    private class flocalClass 
    { 

     public String date; 
     public String location="c:/Test/cascade.xyz"; 

    } 
    public static void main (String[]args) throws IOException 
    { 
     flocalClass fLocal = new Test().new flocalClass(); 
     fLocal.date = Long.toString(new Date().getTime()); 
     boolean x = new File(fLocal.location).setLastModified(Long.parseLong(fLocal.date)); 
     System.out.println("Changed: " + x); 
     System.out.println(new Date(new File(fLocal.location).lastModified())); 
     System.out.println(new Date(Long.parseLong(fLocal.date))); 
    } 
} 
संबंधित मुद्दे