2010-09-28 5 views
5

Potrzebuję zmodyfikować "gotowe" (jeśli istnieje), "zmodyfikowane" i "dostępne" sygnatury czasowe pliku. Idealnie byłoby to rozwiązanie niezależne od platformy.C++: Jak zmodyfikować znacznik czasu "stworzony" plików?

Rozejrzałem się po bibliotekach doładowań, ale nie widzę nic istotnego. Najbliższym, co udało mi się znaleźć, jest this dla systemu Windows.

Czy ktoś może pomóc? Dzięki.

+4

To jest klasyczne pytanie do wywiadu dla administratorów systemu Unix, "jak wyświetlić znacznik czasu tworzenia pliku?". Odpowiedź brzmi: nie ma czegoś takiego. – Cubbi

Odpowiedz

7

nigdy nie korzystali z nich, ale myślę, że szukasz funkcji atrybutów:
http://www.boost.org/doc/libs/1_44_0/libs/filesystem/v2/doc/reference.html#Attribute-functions

Istnieją również funkcje ostatniej modyfikacji:

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

Uwaga: Drugi z nich ustawi czas ostatniej modyfikacji, na wypadek, gdyby było to pożądane. –

+0

A w jaki sposób ta odpowiedź pomaga w modyfikowaniu czasu utworzenia flagi? – killdaclick

+0

@killdaclick afaik nie ma funkcji zwiększenia, która zapewnia czas utworzenia. Myślę, że jeśli chcesz, to musisz napisać własną funkcję z różnymi implementacjami dla obsługiwanych platform. – Daniel

1

Użyj funkcji utime i utimbuf struct. Metoda jest dostępna w systemie Windows, ale nosi nazwę z wiodącym podkreśleniem jako _utime.

Aktualizacja: utime tylko pozwala zmienić dostęp i modyfikacji razy (przez actime i modtime pól utimbuf „s). Jest to najprawdopodobniej spowodowane tym, że wiele systemów plików w stylu Uniksa nie rejestruje czasu w dowolnym miejscu.

2

Another, nieco prostszy kod fragment kodu dla systemu Windows.

0

Nie wszystkie popularne systemy plików wsparcie „stworzył” i „obejrzano” timestamps: http://en.wikipedia.org/wiki/Comparison_of_file_systems#Metadata

systemów plików systemu Windows zrobić, ale to nie może być dobry pomysł, aby od nich zależy teraz, czy trzeba przenośność. Patrząc na tę tabelkę, mam wrażenie, że istnieje tendencja do dodawania wsparcia dla nich w nowszych systemach plików.