2013-02-15 14 views
6

Dosyanın tarihi aşağıdaki kodda neden değişmedi? CNeden bu Dosya içinLastModified (time) çalışma ayarlanmıyor?

fLocal.location = Mevcut dosya: Bu kontrolleri izleyin önceki yorumlarıma itibaren

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

Dosyada izinleriniz varsa, kodunuz dosyaya yazılabilir mi? Dosya açık durumda mı? – JoshDM

+4

Şu anda dosyayı şu anda yaptığınız başka bir uygulama ile mi okuyorsunuz? Bunlar, dosyanın zamanını değiştirmenizi engelleyebilecek tüm öğelerdir. Tek bir metin satırıyla basit bir düz metin dosyası oluşturun, kaydedin ve düzenleyiciden kapatın. Ardından bu dosyayı kullanmayı deneyin. Gerçekte geçerli bir dosyaya sahip olduğunuzdan emin olmak için değiştirmeden önce File Object'inizde '' exists (')' i çağırdığınızdan emin olun. – JoshDM

+0

Doğrudan C: \ altında çalışmak çok kötü bir fikir çünkü a) daha yeni Windows sürümlerinde dosyalara ve dizinlere dokunmanız/değiştirmemeniz gerekir. B) OS dosyalarının üzerine yanlışlıkla yazabilir veya kaldırabilirsiniz (örneğin, önyükleme yapılandırması gibi) dosya). – Ingo

cevap

2

:

fLocal.date = Tarih Uzun

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))); 

Çıktı içinde ayarlamak için \:

  1. Kodunuzun dosyaya erişimi var mı?
  2. Dosya açık durumda mı?
  3. Şu anda bunu yaptığınız sırada başka bir uygulamayla birlikte dosya okuyor (ya da yazıyorsunuz!)?

Bunlar dosyanın zaman değişen engelleyebilecek tüm öğelerdir.

, tek bir metin satırı ile basit bir düz metin dosyası oluşturun kaydetmek ve yakın editör dışına. Ardından, bu dosyayı uygulamanızda kullanmayı deneyin. Gerçekte geçerli bir dosyaya sahip olduğunuzdan emin olmak için exists() numaralı File Object numaralı telefonu aradığınızdan emin olun.

2

benim yerel kodunuzu Test ve ... Ben sistemimde çok eski dosyanın değiştirilme tarihini değiştirdi ...

-See dosya başka bir yerde kullanılıyorsa, ... -Check işleri

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))); 
    } 
} 
İlgili konular