MASM32编程获取文件最后修改时间
来源:互联网 发布:fps鼠标推荐 知乎 编辑:程序博客网 时间:2024/05/17 23:02
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;FileName: FileTime.asm
;Function: Show the last write time of file "C:/IO.SYS"
; Author: Purple Endurer
;
;Date Summary
;---------------------------------------------------------------------------
; 2006.10.28 Created and Passed!
.386
.model flat, stdcall
option casemap: none
include /masm32/include/windows.inc
include /masm32/include/user32.inc
include /masm32/include/kernel32.inc
includelib /masm32/lib/user32.lib
includelib /masm32/lib/kernel32.lib
GetFileLastWriteTime PROTO :LPSTR, :LPSTR
SysTime2Str PROTO :DWORD, :LPSTR
; SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
.data
; SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
g_szFileSpec db "C:/IO.SYS", 0
; SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
.data?
; SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
g_buf20 db 20 dup(?)
; SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
.code
; SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
start:
invoke GetFileLastWriteTime, OFFSET g_szFileSpec, OFFSET g_buf20
.if eax==0
invoke MessageBox, NULL, OFFSET g_buf20, OFFSET g_szFileSpec, NULL
.else
invoke MessageBox, NULL, eax, OFFSET g_szFileSpec, NULL
.endif
invoke ExitProcess, NULL
;///////////////////////////////////////
; Get the last write time of a file
; input: lpstrFileSpec--the pointer to the file specifier
; output: eax > 0, fail, eax = the begin addr of error message
; eax = 0, success, the time str is stored in g_buffer1
;///////////////////////////////////////
GetFileLastWriteTime PROC lpstrFileSpec: LPSTR, lpstrBuf: LPSTR
LOCAL hOpenFile: HANDLE
LOCAL stFileLastWriteTime: FILETIME
LOCAL stLocalFileTime: FILETIME
LOCAL stSysTime: SYSTEMTIME
LOCAL dwResult: DWORD
invoke CreateFile, lpstrFileSpec, GENERIC_READ, FILE_SHARE_READ, NULL,/
OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL
.if eax==INVALID_HANDLE_VALUE
mov eax, OFFSET g_szFailToCreateFile
.else
mov hOpenFile, eax
; BOOL GetFileTime(
; HANDLE hFile, // identifies the file
; LPFILETIME lpCreationTime, // address of creation time
; LPFILETIME lpLastAccessTime,// address of last access time
; LPFILETIME lpLastWriteTime // address of last write time
; );
invoke GetFileTime, hOpenFile, NULL, NULL, ADDR stFileLastWriteTime
.if eax == 0
mov dwResult, OFFSET g_szGetFileTimeErr
.else
; BOOL FileTimeToSystemTime(
; CONST FILETIME *lpFileTime, // pointer to file time to convert
; LPSYSTEMTIME lpSystemTime // pointer to structure to receive system time
; );
invoke FileTimeToLocalFileTime, ADDR stFileLastWriteTime, ADDR stLocalFileTime
invoke FileTimeToSystemTime, ADDR stLocalFileTime, ADDR stSysTime
.if eax==0
mov dwResult, OFFSET g_szFileTimeToSystemTimeErr
.else
invoke SysTime2Str, ADDR stSysTime, lpstrBuf
mov dwResult, 0
.endif
.endif
invoke CloseHandle, hOpenFile
mov eax, dwResult
.endif
ret
g_szFailToCreateFile db "创建文件失败!", 0
g_szGetFileTimeErr db "取文件时间失败!", 0
g_szFileTimeToSystemTimeErr db "转换时间失败!", 0
GetFileLastWriteTime ENDP
SysTime2Str PROC lpSysTime: DWORD, lpstrBuf: LPSTR
xor eax, eax
jz @F
g_szFmt4SysTime db "%d-%d-%d %d:%d:%d", 0
@@:
pushad
mov edi, lpSysTime
assume edi: ptr SYSTEMTIME
movzx eax, [edi].wYear
movzx ebx, [edi].wMonth
movzx ecx, [edi].wDay
movzx edx, [edi].wHour
movzx esi, [edi].wMinute
movzx edi, [edi].wSecond
assume edi: nothing
invoke wsprintf, lpstrBuf, OFFSET g_szFmt4SysTime, eax, ebx, ecx, edx, esi, edi
popad
ret
SysTime2Str ENDP
end start
;FileName: FileTime.asm
;Function: Show the last write time of file "C:/IO.SYS"
; Author: Purple Endurer
;
;Date Summary
;---------------------------------------------------------------------------
; 2006.10.28 Created and Passed!
.386
.model flat, stdcall
option casemap: none
include /masm32/include/windows.inc
include /masm32/include/user32.inc
include /masm32/include/kernel32.inc
includelib /masm32/lib/user32.lib
includelib /masm32/lib/kernel32.lib
GetFileLastWriteTime PROTO :LPSTR, :LPSTR
SysTime2Str PROTO :DWORD, :LPSTR
; SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
.data
; SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
g_szFileSpec db "C:/IO.SYS", 0
; SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
.data?
; SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
g_buf20 db 20 dup(?)
; SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
.code
; SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
start:
invoke GetFileLastWriteTime, OFFSET g_szFileSpec, OFFSET g_buf20
.if eax==0
invoke MessageBox, NULL, OFFSET g_buf20, OFFSET g_szFileSpec, NULL
.else
invoke MessageBox, NULL, eax, OFFSET g_szFileSpec, NULL
.endif
invoke ExitProcess, NULL
;///////////////////////////////////////
; Get the last write time of a file
; input: lpstrFileSpec--the pointer to the file specifier
; output: eax > 0, fail, eax = the begin addr of error message
; eax = 0, success, the time str is stored in g_buffer1
;///////////////////////////////////////
GetFileLastWriteTime PROC lpstrFileSpec: LPSTR, lpstrBuf: LPSTR
LOCAL hOpenFile: HANDLE
LOCAL stFileLastWriteTime: FILETIME
LOCAL stLocalFileTime: FILETIME
LOCAL stSysTime: SYSTEMTIME
LOCAL dwResult: DWORD
invoke CreateFile, lpstrFileSpec, GENERIC_READ, FILE_SHARE_READ, NULL,/
OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL
.if eax==INVALID_HANDLE_VALUE
mov eax, OFFSET g_szFailToCreateFile
.else
mov hOpenFile, eax
; BOOL GetFileTime(
; HANDLE hFile, // identifies the file
; LPFILETIME lpCreationTime, // address of creation time
; LPFILETIME lpLastAccessTime,// address of last access time
; LPFILETIME lpLastWriteTime // address of last write time
; );
invoke GetFileTime, hOpenFile, NULL, NULL, ADDR stFileLastWriteTime
.if eax == 0
mov dwResult, OFFSET g_szGetFileTimeErr
.else
; BOOL FileTimeToSystemTime(
; CONST FILETIME *lpFileTime, // pointer to file time to convert
; LPSYSTEMTIME lpSystemTime // pointer to structure to receive system time
; );
invoke FileTimeToLocalFileTime, ADDR stFileLastWriteTime, ADDR stLocalFileTime
invoke FileTimeToSystemTime, ADDR stLocalFileTime, ADDR stSysTime
.if eax==0
mov dwResult, OFFSET g_szFileTimeToSystemTimeErr
.else
invoke SysTime2Str, ADDR stSysTime, lpstrBuf
mov dwResult, 0
.endif
.endif
invoke CloseHandle, hOpenFile
mov eax, dwResult
.endif
ret
g_szFailToCreateFile db "创建文件失败!", 0
g_szGetFileTimeErr db "取文件时间失败!", 0
g_szFileTimeToSystemTimeErr db "转换时间失败!", 0
GetFileLastWriteTime ENDP
SysTime2Str PROC lpSysTime: DWORD, lpstrBuf: LPSTR
xor eax, eax
jz @F
g_szFmt4SysTime db "%d-%d-%d %d:%d:%d", 0
@@:
pushad
mov edi, lpSysTime
assume edi: ptr SYSTEMTIME
movzx eax, [edi].wYear
movzx ebx, [edi].wMonth
movzx ecx, [edi].wDay
movzx edx, [edi].wHour
movzx esi, [edi].wMinute
movzx edi, [edi].wSecond
assume edi: nothing
invoke wsprintf, lpstrBuf, OFFSET g_szFmt4SysTime, eax, ebx, ecx, edx, esi, edi
popad
ret
SysTime2Str ENDP
end start
- MASM32编程获取文件最后修改时间
- Python-获取文件最后修改时间
- 获取文件最后修改时间(java)
- PB获取文件最后修改时间
- PHP获取远程文件最后修改时间
- java获取文件最后的修改时间
- Linux获取文件最后修改时间
- 获取文件创建时间、最后修改时间、访问时间
- pb9获取文件创建时间、最后修改时间及设置最后修改时间的方法
- java获取时间戳,及文件最后修改时间。
- 文件最后修改时间
- 获取文件最后修改时间的VC代码
- 获取文件最后修改时间的VC代码
- PHP获取网页头部信息、获取文件当前位置、获取文件最后修改时间
- [11-22]MASM32编程获取文件语言、版本信息v3
- 获取AIX文件最后修改时间,类似Linux的time-style显示的时间格式
- MASM32编程获取任务栏高度
- linux 获取本地文件最后修改时间 c++
- 今天开通了播客,测试一下
- 想买一个和心的笔记本
- HttpApplication 事件
- 祝大家国庆节和节快乐
- 不会用BLOG
- MASM32编程获取文件最后修改时间
- 上海“生煎”地图大公开
- Creational Pattern之abstract factory pattern
- 敏捷软件开发宣言
- 交互递归和丘齐数
- 哪家银行缩写最牛!
- 系统敏感端口真正的关闭大法
- 应用框架的基本思想
- 两个基本共识—基于构件的软件开发的发展方向