2010-09-28 33 views
5

Tôi cần sửa đổi dấu thời gian 'đã tạo' (nếu tồn tại), 'đã sửa đổi' và 'truy cập' của một tệp. Lý tưởng nhất đây sẽ là một giải pháp nền tảng độc lập.C++: Cách sửa đổi dấu thời gian của một tập tin?

Tôi đã xem xét các thư viện tăng nhưng tôi không thể thấy bất kỳ điều gì có liên quan. Gần nhất tôi đã tìm thấy một cái gì đó có liên quan là this cho Windows.

Có ai giúp được không? Cảm ơn.

+4

Đó là câu hỏi phỏng vấn cổ điển dành cho quản trị viên Unix, "cách xem dấu thời gian tạo tệp?". Câu trả lời là: không có thứ như vậy. – Cubbi

Trả lời

7

Tôi chưa bao giờ sử dụng chúng nhưng tôi đoán rằng bạn đang tìm kiếm các chức năng thuộc tính:
http://www.boost.org/doc/libs/1_44_0/libs/filesystem/v2/doc/reference.html#Attribute-functions

Ngoài ra còn có các chức năng cho việc sửa đổi lần cuối:

template <class Path> std::time_t last_write_time(const Path& p); 
template <class Path> void last_write_time(const Path& p, const std::time_t new_time); 
+0

Lưu ý: Điều thứ hai trong số này sẽ đặt thời gian sửa đổi cuối cùng, trong trường hợp đó là điều mong muốn. –

+0

Và cách câu trả lời này giúp sửa đổi thời gian gắn cờ 'được tạo'? – killdaclick

+0

@killdaclick afaik không có chức năng nào trong đó cung cấp thời gian tạo. tôi nghĩ rằng nếu bạn muốn rằng bạn sẽ phải viết chức năng của riêng bạn với các triển khai khác nhau cho các nền tảng được hỗ trợ – Daniel

1

Sử dụng chức năng utime và cấu trúc utimbuf. Phương thức này có sẵn trong Windows nhưng được đặt tên với dấu gạch dưới hàng đầu là _utime.

Cập nhật: utime chỉ cho phép bạn thay đổi truy cậpsửa đổi lần (thông qua actimemodtime lĩnh vực utimbuf 's). Điều này rất có thể do nhiều hệ thống tệp kiểu Unix không ghi lại thời gian tạo ở bất kỳ đâu.

2

Another, mã hơi đơn giản đoạn mã cho Windows.

0

Không phải tất cả hệ thống tập tin hỗ trợ phổ biến 'tạo ra' và timestamps 'truy cập': http://en.wikipedia.org/wiki/Comparison_of_file_systems#Metadata

của Windows hệ thống tập tin làm, nhưng nó có thể không phải là một ý tưởng tốt để phụ thuộc vào chúng ngay bây giờ nếu bạn cần tính di động. Nhìn vào bảng đó tôi nhận được một ấn tượng rằng có một xu hướng để thêm hỗ trợ cho họ trong hệ thống tập tin mới hơn mặc dù.

Các vấn đề liên quan