怎样才能,取得文件更新时间?

liyc 2001-07-05 09:47:04
声明:function boolean GetFileTime(long hfile,filetime f1,filetime f2,filetime f3) library "kernel32.dll"
long fhandle
boolean rtn
filetime f1,f2,f3
fhandle=fileopen("d:\test.exe")
rtn=GetFileTime(fhandle,f1,f2,f3)
fileclose(fhandle)
调试时fileopen成功,但getfiletime总是失败,请大侠指教!!!

...全文
145 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
szjlq 2001-07-05
  • 打赏
  • 举报
回复
PB的fileopen返回的是一个文件号(file number),象以前DOS下的BASIC的#1,#2
API的openfile返回的是一个文件句柄。
liyc 2001-07-05
  • 打赏
  • 举报
回复
to:szjlq
谢谢老兄,pb的fileopen()与api的openfile()有何区别,你的方法我还没试
怎么给你分呀?
wangsw 2001-07-05
  • 打赏
  • 举报
回复
真麻烦!
szjlq 2001-07-05
  • 打赏
  • 举报
回复
代码:
ulong lul_hFile
ofstruct lst_ofstruct
string ls_filename
ls_filename='c:\1.txt'
lul_hFile=openfile(ls_filename,lst_ofstruct,0)//取句柄

filetime lst_filetime1,lst_filetime2,lst_filetime3
SYSTEMTIME LST_SYSTEMTIME

GetFileTime(lul_hFile,lst_filetime1,lst_filetime3,lst_filetime3)//取时间

FileTimeToSystemTime(LST_FileTime1,LST_SYSTEMTIME)//将UTC格式转化成系统时间格式
messagebox('',string(lst_systemtime.wYear)+ '/'+string(lst_systemtime.wMonth)+'/'+string(lst_systemtime.wDay))
szjlq 2001-07-05
  • 打赏
  • 举报
回复
API:
FUNCTION ulong GetFileTime(ulong hFile,ref FILETIME lpCreationTime,ref FILETIME lpLastAccessTime,ref FILETIME lpLastWriteTime) LIBRARY "kernel32.dll"
FUNCTION ulong OpenFile(ref string lpFileName,ref OFSTRUCT lpReOpenBuff,ulong wStyle) LIBRARY "kernel32.dll"
FUNCTION ulong FileTimeToSystemTime(ref FILETIME lpFileTime,ref SYSTEMTIME lpSystemTime) LIBRARY "kernel32.dll"

szjlq 2001-07-05
  • 打赏
  • 举报
回复
type FileTime from structure
long dwLowDateTime
long dwHighDateTime
end type

type OFSTRUCT from structure
unsignedinteger cBytes
unsignedinteger fFixedDisk
integer nErrCode
integer Reserved1
integer Reserved2
character szPathName[128]
end type

type systemtime from structure
integer wYear
integer wMonth
integer wDayOfWeek
integer wDay
integer wHour
integer wMinute
integer wSecond
integer wMilliseconds
end type
Kanfu 2001-07-05
  • 打赏
  • 举报
回复
Declared in winbase.h
pbsql 2001-07-05
  • 打赏
  • 举报
回复
还是没看出来这个函数在哪个文件里头!
Kanfu 2001-07-05
  • 打赏
  • 举报
回复
GetFileTime
The GetFileTime function retrieves the date and time that a file was created, last accessed, and last modified.

BOOL GetFileTime(
HANDLE hFile, // handle to the file
LPFILETIME lpCreationTime, // address of creation time
LPFILETIME lpLastAccessTime, // address of last access time
LPFILETIME lpLastWriteTime // address of last write time
);

Parameters
hFile
Handle to the files for which to get dates and times. The file handle must have been created with GENERIC_READ access to the file.
lpCreationTime
Pointer to a FILETIME structure to receive the date and time the file was created. This parameter can be NULL if the application does not require this information.
lpLastAccessTime
Pointer to a FILETIME structure to receive the date and time the file was last accessed. The last access time includes the last time the file was written to, read from, or, in the case of executable files, run. This parameter can be NULL if the application does not require this information.
lpLastWriteTime
Pointer to a FILETIME structure to receive the date and time the file was last written to. This parameter can be NULL if the application does not require this information.
Return Values
If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks
The FAT and NTFS file systems support the file creation, last access, and last write time values.

Windows 95: The precision of the time for a file in a FAT file system is 2 seconds. The time precision for files in other file systems, such as those connected through a network depends on the file system but may also be limited by the remote device.

QuickInfo
Windows NT: Requires version 3.1 or later.
Windows: Requires Windows 95 or later.
Windows CE: Requires version 1.0 or later.
Header: Declared in winbase.h.
Import Library: Use kernel32.lib.

FILETIME
The FILETIME structure is a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601.

typedef struct _FILETIME { // ft
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;

Members
dwLowDateTime
Specifies the low-order 32 bits of the file time.
dwHighDateTime
Specifies the high-order 32 bits of the file time.
Remarks
It is not recommended that you add and subtract values from the FILETIME structure to obtain relative times. Instead, you should

Copy the resulting FILETIME structure to a LARGE_INTEGER structure.
Use normal 64-bit arithmetic on the LARGE_INTEGER value.
QuickInfo
Windows NT: Requires version 3.1 or later.
Windows: Requires Windows 95 or later.
Windows CE: Requires version 1.0 or later.
Header: Declared in winbase.h.


weiqihp 2001-07-05
  • 打赏
  • 举报
回复
能详细点吗?
pbsql 2001-07-05
  • 打赏
  • 举报
回复
在哪个文件里头?
Kanfu 2001-07-05
  • 打赏
  • 举报
回复
看看函数定义:
BOOL GetFileTime(
HANDLE hFile, // handle to the file
LPFILETIME lpCreationTime, // address of creation time
LPFILETIME lpLastAccessTime, // address of last access time
LPFILETIME lpLastWriteTime // address of last write time
);
知道了吧!

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧