ファイルの作成日時を取得

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: ファイルの作成日時を取得

解決しました。

by 卓漏 » 2006年7月30日(日) 17:30

「Tomorrow」さんに言われたとおり、「FileTimeToLocalFileTime」を使ってみたら・・・・

コード: 全て選択


Function Export GetFileCreationTime(fileNumber As Integer) As String
	'+ ファイルの作成日時を取得します +
	Dim Str As String
	Dim fileUTC_FDT As FILETIME
	Dim fileLocal_FDT As FILETIME
	Dim fileSDT As SYSTEMTIME

	GetFileTime(fileData(fileNumber).hFile, fileUTC_FDT, ByVal NULL, ByVal NULL)

	FileTimeToLocalFileTime(fileUTC_FDT, fileLocal_FDT)

	FileTimeToSystemTime(fileLocal_FDT , fileSDT)

	Str = Str$(fileSDT.wYear) & "/" & Str$(fileSDT.wMonth) & "/" & Str$(fileSDT.wDay)
	Str = Str & " " & Str$(fileSDT.wHour) & ":" & Str$(fileSDT.wMinute) & ":" & Str$(fileSDT.wSecond)

	GetFileCreationTime = Str

End Function
・・・・問題が解消しました。ありがとうございました。

by konisi » 2006年7月30日(日) 01:01

9時間って事はロンドン-東京間の時差ですかね?システム時間に関することはあまり詳しくないのでよくわかりませんが。

by Tomorrow » 2006年7月29日(土) 23:05

過去ログ"BackSearchAB"をお持ちならキーワードに"FILETIME"と入れて検索してみてください。
9時間ほどズレが生じると報告されているトピックが見つかります。

FileTimeToLocalFileTime関数を使うと解消するみたいです。

ファイルの作成日時を取得

by 卓漏 » 2006年7月28日(金) 21:36

下のような、プログラムを作って、エラーもなく動作するのですが、
なぜか、作成日時の時間の部分が、実際とずれてしまっています。
どこか、間違っている部分とかあるでしょうか?

コード: 全て選択


Function GetFileCreationTime(fileNumber As Integer) As String
	'+ ファイルの作成日時を取得します +
	Dim Str As String
	Dim fileFDT As FILETIME
	Dim fileSDT As SYSTEMTIME

	GetFileTime(fileData(fileNumber).hFile, fileFDT, ByVal NULL, ByVal NULL)

	FileTimeToSystemTime(fileFDT, fileSDT)

	Str = Str$(fileSDT.wYear) & "/" & Str$(fileSDT.wMonth) & "/" & Str$(fileSDT.wDay)
	Str = Str & " " & Str$(fileSDT.wHour) & ":" & Str$(fileSDT.wMinute) & ":" & Str$(fileSDT.wSecond)

	GetFileCreationTime = Str

End Function
ちなみに、「fileData(fileNumber).hFile」は、

コード: 全て選択


fileData(fileNumber).hFile = CreateFile(pFilePath, GENERIC_READ + GENERIC_WRITE, 0, ByVal NULL, OPEN_ALWAYS, FILE_FLAG_RANDOM_ACCESS, NULL)
となっています。

ページトップ