ファイルスタンプの変更

[戻る]
YORK 2009/09/30(水) 15:41:55
またまたお願いします。

4GB以上のファイルのタイムスタンプ変更について質問です。
以下のように4GB以上ファイルのタイムスタンプを変更すると、アサートが発生してしまいます。

CFileStatus cFileStatusDest;
CFile::GetStatus("ファイルパス", cFileStatusDest); ←ここでアサート発生
cFileStatusDest.m_atime = ”変更する日付”;
cFileStatusDest.m_ctime = ”変更する日付”;
cFileStatusDest.m_mtime = ”変更する日付”;
CFile::SetStatus("ファイルパス", cFileStatusDest);

原因はCFileStatusのm_sizeがLONG型のためだと思われます。
※環境がVC2003のため

CFileStatusを使用しない方法で、ファイルのタイムスタンプ変更方法をご教授願います。

Blue 2009/09/30(水) 16:00:38
つSetFileTime
http://msdn.microsoft.com/ja-jp/library/cc429940.aspx

おまけ
SystemTimeToFileTime
http://msdn.microsoft.com/ja-jp/library/cc429961.aspx

ちなみに、デバッグでCFile::SetStatusにステップインすればわかることです。

YORK 2009/09/30(水) 17:43:41
[[解決]]
ありがとうございます。

古いスレッドには追加発言できません。