ファイルのタイムスタンプを変更(T)          <TOP>


ファイルのタイムスタンプを変更します。

TouchFileTimes 指定されたファイルが最後に変更されたことを示す日付と時刻を更新

CreateFile 指定したファイルをオープンし、デバイスハンドルを返す

CloseHandle オープンされているオブジェクトハンドルをクローズ

 

Windows95/98には対応していません。

変更後の確認

 

'================================================================
'= タイムスタンプの書き換え
'= Windows 95/98:非対応
'=    (TouchFileTimes.bas)
'================================================================

#define GENERIC_WRITE &H40000000        '書き込みモード
#define OPEN_EXISTING 3                 'ファイルをオープンする(存在しない場合失敗)
#define FILE_SHARE_READ &H1             '後続のオープン操作で読み取りアクセスが要求された場合、そのオープンを許可
#define FILE_SHARE_WRITE &H2            '後続のオープン操作で書き込みアクセスが要求された場合、そのオープンを許可

' 指定されたファイルが最後に変更されたことを示す日付と時刻を更新
Declare Function Api_TouchFileTimes& Lib "imagehlp" Alias "TouchFileTimes" (ByVal FileHandle&, ByRef pSystemTime As Any)

' 指定したファイルをオープンし、デバイスハンドルを返す
Declare Function Api_CreateFile& Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName$, ByVal dwDesiredAccess&, ByVal dwShareMode&, lpSecurityAttributes As Any, ByVal dwCreationDisposition&, ByVal dwFlagsAndAttributes&, ByVal hTemplateFile&)

' オープンされているオブジェクトハンドルをクローズ
Declare Function Api_CloseHandle& Lib "kernel32" Alias "CloseHandle" (ByVal hObject&)

Var sFile as string
Var lHandle As Long

sFile = "c:\test\myfile.txt"

lHandle = Api_CreateFile(sFile, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0, OPEN_EXISTING, 0, 0)

If Api_TouchFileTimes(lHandle, ByVal 0) = 0 Then
    Print "ファイルのタイムスタンプ変更は失敗しました!"
Else
    Print "ファイルのタイムスタンプを変更しました!"
End If

Ret = Api_CloseHandle(hWnd)

Stop
End