程序如下:
i = Shell("net use \\" & IP地址 & 文件路径 & " " & 密码 & " /user:" & 用户名)
If i = 0 Then
giMsgDisp G_MSG01_E023
fcGetNewTime = False
Exit Function
End If
FileHandle = OpenFile("\\" & IP地址 & 文件路径 & "\" & 文件名, lpReOpenBuff, OF_READ)
Call GetFileInformationByHandle(FileHandle, FileInfo)
'关闭对象
Call CloseHandle(FileHandle)
'读取 Time Zone 资讯, 因为上一步骤的档案时间是「格林威治」时间
Call GetTimeZoneInformation(tZone)
bias = tZone.bias ' 时间差, 以「分」为单位
Call FileTimeToSystemTime(FileInfo.ftCreationTime, ft) ' 转换时间资料结构
dtCreate = DateSerial(ft.wYear, ft.wMonth, ft.wDay) + _
TimeSerial(ft.wHour, ft.wMinute - bias, ft.wSecond)
当我第一次执行上面程序的时候,i有值,但是FileHandle句柄为-1。不能取得文件的创建时间。我再次执行的时候,i有值,但是FileHandle句柄为有值了,能取到创建时间。
当我第一次执行上面程序的时候,把断点设置在FileHandle=open时,然后在单步执行的时候也能取到创建时间。
我想请各位高手告诉我是什么原因呢?谢谢
i = Shell("net use \\" & IP地址 & 文件路径 & " " & 密码 & " /user:" & 用户名)
If i = 0 Then
giMsgDisp G_MSG01_E023
fcGetNewTime = False
Exit Function
End If
FileHandle = OpenFile("\\" & IP地址 & 文件路径 & "\" & 文件名, lpReOpenBuff, OF_READ)
Call GetFileInformationByHandle(FileHandle, FileInfo)
'关闭对象
Call CloseHandle(FileHandle)
'读取 Time Zone 资讯, 因为上一步骤的档案时间是「格林威治」时间
Call GetTimeZoneInformation(tZone)
bias = tZone.bias ' 时间差, 以「分」为单位
Call FileTimeToSystemTime(FileInfo.ftCreationTime, ft) ' 转换时间资料结构
dtCreate = DateSerial(ft.wYear, ft.wMonth, ft.wDay) + _
TimeSerial(ft.wHour, ft.wMinute - bias, ft.wSecond)
当我第一次执行上面程序的时候,i有值,但是FileHandle句柄为-1。不能取得文件的创建时间。我再次执行的时候,i有值,但是FileHandle句柄为有值了,能取到创建时间。
当我第一次执行上面程序的时候,把断点设置在FileHandle=open时,然后在单步执行的时候也能取到创建时间。
我想请各位高手告诉我是什么原因呢?谢谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货