在ftp服务器上下载了文件,并读取了该文件的时间属性,把ftp文件的时间赋给了当地下载了的文件,但是差8个小时,如何使时间一致啊?部分代码如下
hConnection = InternetConnect(hOpen, ip, 0,username, password, 1, 0, 0)
bRet = FtpSetCurrentDirectory(hConnection, FtpServerDir)
pData.cFileName = String(MAX_PATH, 0)
hFind = FtpFindFirstFile(hConnection, "*.gz", pData, 0, 0)
mfile = Left(pData.cFileName, InStr(1, pData.cFileName, String(1, 0), vbBinaryCompare) - 1)FileHandle = CreateFile("c:\"+mfile, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)             {{文件名为mfile已下载在当地"c:\"下}}
SetFileTime FileHandle, pData.ftCreationTime, pData.ftLastAccessTime,pData.ftLastWriteTime
如何改代码使修改时间一致,而不相差8小时?
高手请帮忙啊!

解决方案 »

  1.   

    不知道你的FTP服务器是设定的哪个时区。相差8小时应该是设定的GTM吧。
    一般FTP软件都有一个时区设定的。根据本地设定的时区和服务器时区来算出来一个修正值,然后最后给文件设定时间的时候就把这个修正值算上。
      

  2.   

    可能是hFind = FtpFindFirstFile(hConnection, "*.gz", pData, 0, 0)得到了文件的pData.ftCreationTime, pData.ftLastAccessTime,pData.ftLastWriteTime后,用filetimetolocaltime转换为当地时间后,再S用etFileTime赋值给已下载的文件的时间属性就行了。
    我去试一试
      

  3.   

    不是用filetimetolocaltime,用localtimetofiletime就可以搞定了
      

  4.   

    localtimetofiletime 这个函数是C语言的,VB的如何使用?