2015-10-20 12 views
6

ben C# uygulaması var içinde oluşturulma tarihi değiştirmez. Bu kayıt klasöründe yaz. kodunun altınadosya ve yeniden yaratma dosyayı sildikten sonra pencereler

.

if (File.Exists(@"C:\EXT_LOG\LOG.txt")) 
{ 
    File.Delete(@"C:\EXT_LOG\LOG.txt"); 
} 

string Data = "xxxxx"; 
System.IO.StreamWriter file = new StreamWriter(@"C:\EXT_LOG\LOG.txt"); 
file.WriteLine(Data); 
file.Dispose(); 
file.Close(); 

Varsa dosyayı silin ve aynı ada sahip bir dosya oluşturuyorum. Program çalıştırdığımda, dosyanın oluşturulma tarihi değişmez.

Hala bu dosyayı sahip pencereler herhangi yöneticisi veya herhangi bir dosya tablosu sanırım. Ben dosyayı sildiğinizde

yani, ben müdür veya dosya tablosu içeriğini silebilirsiniz ?? o pencerelerde nasıl çalıştığını

+0

nasıl ve oluşturulma tarihi alınıyor? Sadece Windows Explorer ise, görüntüyü yenilemek için F5'e vurmayı denediniz mi? –

+1

@GrantWinney Aslında bunu Windows Gezgini'nden test edebilirsiniz. 1) Mevcut eski bir dosyayı bulun. 2) siliniz 3) Aynı ada sahip yeni bir dosya yaratın 4) Yeni dosya, aynı dosyada olduğu gibi ** oluşturulmuş ** ile aynı olacaktır. Aşağıdaki dotnetkid cevabına bakınız. Kendime şaşırdım :) – MickyD

+2

Bunun nedeni güvenli kaydetme sağlamaktır. MS WORD'nin yaptığı gibi. Uygulama programları otomatik olarak kaydettiklerinde, dosyaları fazla yazmazlar. Bunun yerine, eski dosyayı taşırlar ve yeni bir dosya oluştururlar. Bununla birlikte, yeni dosya oluşturma süresi dahil olmak üzere eski dosyanın niteliklerini korumalıdır. Gördüğünüz geçici dosyalara bakın, bunlardan önce oturum açın, bu sayede gizli dosyaların görünmesini sağlayın. – SreekanthGS

cevap

4

budur. Google'ı WHY için aramadım. Ancak, dosyanın oluşturulma tarihini C# ile System.IO.File.SetCreationTime yöntemini kullanarak ayarlayabilirsiniz.

public static void SetCreationTime(
    string path, 
    DateTime creationTime 
) 

Kaynak: https://msdn.microsoft.com/en-us/library/system.io.file.setcreationtime(v=vs.100).aspx

+3

dotnetkid'den bahsedildiği gibi, bu varsayılan pencere davranışıdır. Bu davranışın nedeni şu adreste bulunabilir: https://support.microsoft.com/en-us/kb/172190 – Don

İlgili konular