2016-03-23 25 views
3

En az Ubuntu 15, FreeBSD 11, MacOS X ve Windows 7 (GCC, clang ve MSVC ile derlenmiş) arasında taşınabilir olması gereken bir C++ uygulaması yazıyorum. Tüm bu sistemler en az bir değişiklik tarihi/saati olan bir dosyaya sahiptir.C++ dosyasında dosya değiştirme süresini ayarlamak için taşınabilir yol?

soru şudur: Bu sistemlerin hepsi üzerinde çalışacak C++ tek bir kod parçası kullanarak bir Dosyanın değişiklik zamanını ayarlamak için bir yol var?

NB: Ben değil, herhangi belirtilen değere geçerli zamanı (yani değil dokunmatik işlevselliği) ayarlayarak demek Dosyanın değişiklik zamanını ayarlayarak.

+5

Söylemek istemiyorum ama bunu destek ile yapabilirsiniz. – Nick

+0

Saf C++ içinde yapılamaz – DimChtz

+1

Dosyayı okuyun ve geri yazın. – Zereges

cevap

4

C++ Standart Kitaplığı (henüz), C++17 ile ilgili olabilecek herhangi bir dosyaya sahip değildir (until filesystem will become part of the Standard Library). Şu anda, boost::filesystem veya Qt gibi bazı platformlar arası kitaplığa güvenmeniz gerekiyor.

+1

Hayır, dosya sistemi hiçbir zaman STL'nin parçası olmayacaktır. Bununla birlikte, Standart Kitaplığa dahil edilmesinden dolayıdır. –

+0

İşaretlediğiniz için teşekkür ederim. Hatayı düzelttim. – Claudio

6

boost::filesystem ile, get/set the time için bu işlevi kullanabilirsiniz: Bu aynı zamanda gcc veya msvc gibi bazı derlemesinin üzerinde experimental özellik olarak bazı derleyicilerde kullanılabilir

void last_write_time(const path& p, const std::time_t new_time); 

. Bunlar aynı API'yi, ancak farklı deneysel ad alanını kullanır. Bu nedenle, yükseltmeyi kullanmak istemiyorsanız ve henüz standarda entegre olmadığı sürece, koşullu derleme ve kullanma ifadesiyle taşınabilir hale getirebilirsiniz.

İlgili konular