C ++: كيفية تعديل الطابع الزمني الذي تم إنشاؤه "ملفات"؟

StackOverflow https://stackoverflow.com/questions/3814349

  •  26-09-2019
  •  | 
  •  

سؤال

أحتاج إلى تعديل "تم إنشاؤه" (إذا كان موجودًا) و "تعديل" و "تم الوصول إليه" الطابع الزمني للملف. من الناحية المثالية ، سيكون هذا حلًا مستقلًا من النظام الأساسي.

لقد نظرت حول مكتبات التعزيز ولكن لا يمكنني رؤية أي شيء ذي صلة. أقرب ما وجدته لشيء ذي صلة هذه للنوافذ.

هل أستطيع مساعدتك؟ شكرًا.

هل كانت مفيدة؟

المحلول

لم أستخدمها أبدًا ولكن أعتقد أنك تبحث عن وظائف السمة:
http://www.boost.org/doc/libs/1_44_0/libs/filesystem/v2/doc/reference.html#attribute-functions

هناك أيضًا وظائف للتعديل الأخير:

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);

نصائح أخرى

اخر, ، مقتطف رمز أبسط قليلاً لنظام التشغيل Windows.

استخدم ال utime وظيفة و utimbuf بنية. هذه الطريقة متوفرة في Windows ولكن تم تسميتها مع السطح السفلي الرائد _utime.

تحديث: utime يسمح لك فقط بتغيير التمكن من و تعديل مرات (عبر utimbufactime و modtime مجالات). هذا على الأرجح لأن العديد من أنظمة الملفات على غرار Unix لا تسجل خلق الوقت في أي مكان.

لا تدعم جميع أنظمة الملفات الشائعة "تم إنشاؤها" و "تم الوصول إليها" الطوابع الزمنية: http://en.wikipedia.org/wiki/comparison_of_file_systems#metadata

تقوم Windows FileSystems ، ولكن قد لا يكون من الجيد الاعتماد عليها الآن إذا كنت بحاجة إلى قابلية النقل. بالنظر إلى هذا الجدول ، لدي انطباع بأن هناك اتجاهًا لإضافة دعم لهم في أنظمة الملفات الأحدث.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top