求获得FTP上文件最后一次被修改的时间(急,在线等)

robin400 2004-08-12 04:03:28
那为大虾能告诉我用WININET.DLL连接到FTP后 怎样才能获得文件最后一次被修改的时间是日期型的。
最好有个例子。
...全文
165 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bubu198 2004-08-13
  • 打赏
  • 举报
回复
你还需要用下面的函数将filetime转换成systemtime格式!

Public Declare Function FileTimeToSystemTime Lib "kernel32" Alias "FileTimeToSystemTime" (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As Long
Public Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type
robin400 2004-08-13
  • 打赏
  • 举报
回复
多谢老兄
robin400 2004-08-12
  • 打赏
  • 举报
回复
我用的就是这种方法,不过得到的文件的修改日期不是日期类型的。
bubu198 2004-08-12
  • 打赏
  • 举报
回复
Private Declare Function FtpFindFirstFile Lib "wininet.dll" Alias "FtpFindFirstFileA" _
  (ByVal hFtpSession As Long, ByVal lpszSearchFile As String, _
  lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Long, _
  ByVal dwContent As Long) As Long

  第一个参数hFtpSession 是InternetConnect 调用返回的句柄值。
  lpszSearchFile 是FTP服务器上的路径或文件名。如果你指定了一个空字符,就使用当前路径。另外还可以指定通配符。例如,要列出以ms开始的根目录下的路径内容,就使用ms*? 。

  lpFindFileData 与我们使用的其它参数有一点不同。数据类型WIN32_FIND_DATA 是用户定义类型,保存关于路径下的文件的信息。类型看起来是这样的:

Private Type WIN32_FIND_DATA
    dwFileAttributes As Long
    ftCreationTime As FILETIME
    ftLastAccessTime As FILETIME
    ftLastWriteTime As FILETIME '*最后一次被修改的时间
    nFileSizeHigh As Long
    nFileSizeLow As Long
    dwReserved0 As Long
    dwReserved1 As Long
    cFileName As String * MAX_PATH
    cAlternate As String * 14
End Type


  注意,有许多参数有不同的用户定义数据类型:FILETIME。下面是它们的类型定义:

Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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