2010-09-08 36 views
14

Tôi có một số tệp trong một thư mục và tôi cần có ngày sửa đổi cuối cùng. Vì vậy, tôi đã sử dụngNhận ngày sửa đổi tập tin trong VB.NET

FDate = IO.File.GetLastWriteTime(FName) 

Nó hoạt động tốt với một số tệp, nhưng những người khác, tôi có ngày 1/1/1601. Nhưng khi tôi kiểm tra các tập tin trong Windows Explorer, tất cả các ngày trông bình thường (gần đây). Vì vậy, tôi đoán có nhiều tập tin ngày được lưu trữ trong hệ thống tập tin, và những cái .NET đang thấy không phải là những cái Windows đang thấy. Làm cách nào để có được chính xác ngày xuất hiện dưới dạng "ngày sửa đổi" trong cửa sổ trình duyệt tệp?

Tôi đã thử một số công cụ API Visual Basic 6.0, nhưng điều đó dường như không hoạt động trong .NET.

Trả lời

27

Từ File.GetLastWriteTime Method:

Nếu tập tin được mô tả trong các tham số đường dẫn không tồn tại, phương pháp này trả về 12:00 nửa đêm, ngày 01 Tháng 1 năm 1601 AD (CE) Coordinated Universal Time (UTC), điều chỉnh giờ địa phương.

Tệp bạn đang truy vấn có thể bị thiếu.

+3

Tôi không thể tin được, đúng không, không phải !! Nhưng đã sớm hơn !! Một cái gì đó khác đang xảy ra. Vui như thế nào khi bạn gặp khó khăn trong một vấn đề bạn đôi khi có thể bỏ lỡ rõ ràng. Chúc mừng – Ianb

4

Truy vấn được đề cập bên dưới sẽ nhận đúng LastModifiedDate cho tất cả các tệp có trong một thư mục.

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 
Các vấn đề liên quan