VS 2010 と Win32 を使用して C++ でコードを作成し、単に TAR ファイルを抽出しています。
抽出を行うために、アルゴリズムをゼロから完全に実装しました。
次のような TAR ヘッダー構造があります。
/* tar Header Block, from POSIX 1003.1-1990. */
/* POSIX header. */
struct posix_header
{ /* byte offset */
char name[100]; /* 0 */
char mode[8]; /* 100 */
char uid[8]; /* 108 */
char gid[8]; /* 116 */
char size[12]; /* 124 */
char mtime[12]; /* 136 */
char chksum[8]; /* 148 */
char typeflag; /* 156 */
char linkname[100]; /* 157 */
char magic[6]; /* 257 */
char version[2]; /* 263 */
char uname[32]; /* 265 */
char gname[32]; /* 297 */
char devmajor[8]; /* 329 */
char devminor[8]; /* 337 */
char prefix[155]; /* 345 */
/* 500 */
};
この構造から、mtime[12] を使用してファイルの変更されたタイム スタンプを保持できます。次に、Win32 ::SetFileTime() 関数を使用して、抽出したファイルのタイム スタンプ プロパティを更新します。
しかし、問題は、作成されたファイルの時間と最終アクセス時間にアクセスすることです。
この情報がTARヘッダー内のどこに保存されているかを知るのを手伝ってくれる人はいますか???
また、Windows の場合、読み取り専用、非表示、システムなどのファイル アクセス許可をデコードするにはどうすればよいでしょうか?