2010-09-08 30 views
14

olarak al. Bir klasörde birkaç dosya var ve en son değiştirilme tarihini almam gerekiyor. Bu yüzdenDosya değiştirilme tarihini VB.NET

FDate = IO.File.GetLastWriteTime(FName) 

Bazı dosyaları ile çalışıyor kullanılır, ancak diğerleri üzerinde, ben 1/1/1601 bir tarih olsun. Ancak Windows Gezgini'nde dosyaları kontrol ettiğimde, tüm tarihler normal görünüyor (yeni). Bu yüzden, dosya sisteminde saklanan birden fazla dosya tarihleri ​​olduğunu ve .NET'in gördüklerinin Windows'un gördükleri olmadığını tahmin ediyorum. Bir dosya gezgini penceresinde "tarih değiştirildi" olarak görünen tarihi tam olarak nasıl alabilirim?

Bazı Visual Basic 6.0 API öğelerini denedim, ancak .NET'te çalışmıyor gibi görünüyor. File.GetLastWriteTime Method itibaren

cevap

27

: yol parametresinde açıklanan dosya yoksa

, bu yöntem 12:00 gece yarısı, 1 Ocak 1601 AD (CE) Evrensel Zaman (UTC) Eşgüdümlü döndürür ayarlanır Yerel zaman.

Sorgulama yaptığınız dosya muhtemelen eksik.

+3

Buna inanamıyorum, değil mi? Ama daha önceydi! Başka bir şey garip oluyor. Komik bir problemde ne zaman sıkışıp kaldığınızı bazen bariz olanı kaçırırsınız. Şerefe – Ianb

4

Aşağıda belirtilen sorgu, bir klasörde bulunan tüm dosyalar için doğru LastModifiedDate'u edinecektir.

Dim strFilepath = "" 'Specify path details 
    Dim directory As New System.IO.DirectoryInfo(strFilepath) 
    Dim File As System.IO.FileInfo() = directory.GetFiles() 
    Dim File1 As System.IO.FileInfo 
    For Each File1 In File 
     Dim strLastModified As String 
     strLastModified = System.IO.File.GetLastWriteTime(strFilepath & "\" & File1.Name).ToShortDateString() 
    Next