12 个解决方案
#1
怎么没人说话啊!!大虾们!
#2
那就用错误处理判断!
#3
方法1
检测到新文件后不要立即处理,读取其长度,下次扫描时,如果长度相同,则处理,否则再如上等待。
这个方法的关键是扫描间隔要足以使上传的文件长度有变化。
方法2
远端客户上传文件文成后,上传一个0字节规定扩展名的同名文件。检测时只检测此标志文件,检测到即处理同名文件。
检测到新文件后不要立即处理,读取其长度,下次扫描时,如果长度相同,则处理,否则再如上等待。
这个方法的关键是扫描间隔要足以使上传的文件长度有变化。
方法2
远端客户上传文件文成后,上传一个0字节规定扩展名的同名文件。检测时只检测此标志文件,检测到即处理同名文件。
#4
up
#5
用下面的api,取的文件的最后写入时间
Public Declare Function GetFileInformationByHandle Lib "kernel32" Alias "GetFileInformationByHandle" (ByVal hFile As Long, lpFileInformation As BY_HANDLE_FILE_INFORMATION) As Long
Public Type BY_HANDLE_FILE_INFORMATION
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME '文件的最后写入时间
dwVolumeSerialNumber As Long
nFileSizeHigh As Long
nFileSizeLow As Long
nNumberOfLinks As Long
nFileIndexHigh As Long
nFileIndexLow As Long
End Type
Public Declare Function GetFileInformationByHandle Lib "kernel32" Alias "GetFileInformationByHandle" (ByVal hFile As Long, lpFileInformation As BY_HANDLE_FILE_INFORMATION) As Long
Public Type BY_HANDLE_FILE_INFORMATION
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME '文件的最后写入时间
dwVolumeSerialNumber As Long
nFileSizeHigh As Long
nFileSizeLow As Long
nNumberOfLinks As Long
nFileIndexHigh As Long
nFileIndexLow As Long
End Type
#6
取的文件的最后写入时间,和目前的时间对比,判断是否写完!
#7
感谢of123()提供的方法,觉得方法1是可行的,不过处理起来可能麻烦一点。方法2可能我这里不行了,他们不会这样做的。
谢谢你给的这个思维:)
如果有好的方法,请高手发言!等待你们的答案,要不我结算分数了!
谢谢你给的这个思维:)
如果有好的方法,请高手发言!等待你们的答案,要不我结算分数了!
#8
取的文件的最后写入时间,和目前的时间对比,判断是否写完!
请问qianfubin(慕白),这是什么意思,是指前一次扫描的时间和下一次的比较吗? 按照of123()的方法1的思维是吗?也就是前一次扫描到的文件和下一次的文件时间相比,看有没有变化!然后再做处理?
请问qianfubin(慕白),这是什么意思,是指前一次扫描的时间和下一次的比较吗? 按照of123()的方法1的思维是吗?也就是前一次扫描到的文件和下一次的文件时间相比,看有没有变化!然后再做处理?
#9
如果文件的最后写入时间和当前扫描时间一致(可以设定时间差:比如时间差小于<10秒),那就说明还在写文件。
#10
把文件写进数据库
#11
一般的文件(除数据库以外)可以用长度为0来检验(新文件),因为无论文件多长
在未写完之前长度都是0。此方法还可以跳过0文件。另外,再用错误处理就可以了
COPY文件要用COPY命令,然后就可以通过时间(FILEDATETIME)比较文件是否更新了。
在未写完之前长度都是0。此方法还可以跳过0文件。另外,再用错误处理就可以了
COPY文件要用COPY命令,然后就可以通过时间(FILEDATETIME)比较文件是否更新了。
#12
To:tanyx(不知道)
你这种说法好像有问题吧!ftp上传文件,应该是一点一点增加的,直到文件完成。如果是copy的话就不是很清楚了,没做测试。
请教 qianfubin(慕白)
你那api,传值怎么样得到结果呢!不是很明白。
你这种说法好像有问题吧!ftp上传文件,应该是一点一点增加的,直到文件完成。如果是copy的话就不是很清楚了,没做测试。
请教 qianfubin(慕白)
你那api,传值怎么样得到结果呢!不是很明白。
#1
怎么没人说话啊!!大虾们!
#2
那就用错误处理判断!
#3
方法1
检测到新文件后不要立即处理,读取其长度,下次扫描时,如果长度相同,则处理,否则再如上等待。
这个方法的关键是扫描间隔要足以使上传的文件长度有变化。
方法2
远端客户上传文件文成后,上传一个0字节规定扩展名的同名文件。检测时只检测此标志文件,检测到即处理同名文件。
检测到新文件后不要立即处理,读取其长度,下次扫描时,如果长度相同,则处理,否则再如上等待。
这个方法的关键是扫描间隔要足以使上传的文件长度有变化。
方法2
远端客户上传文件文成后,上传一个0字节规定扩展名的同名文件。检测时只检测此标志文件,检测到即处理同名文件。
#4
up
#5
用下面的api,取的文件的最后写入时间
Public Declare Function GetFileInformationByHandle Lib "kernel32" Alias "GetFileInformationByHandle" (ByVal hFile As Long, lpFileInformation As BY_HANDLE_FILE_INFORMATION) As Long
Public Type BY_HANDLE_FILE_INFORMATION
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME '文件的最后写入时间
dwVolumeSerialNumber As Long
nFileSizeHigh As Long
nFileSizeLow As Long
nNumberOfLinks As Long
nFileIndexHigh As Long
nFileIndexLow As Long
End Type
Public Declare Function GetFileInformationByHandle Lib "kernel32" Alias "GetFileInformationByHandle" (ByVal hFile As Long, lpFileInformation As BY_HANDLE_FILE_INFORMATION) As Long
Public Type BY_HANDLE_FILE_INFORMATION
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME '文件的最后写入时间
dwVolumeSerialNumber As Long
nFileSizeHigh As Long
nFileSizeLow As Long
nNumberOfLinks As Long
nFileIndexHigh As Long
nFileIndexLow As Long
End Type
#6
取的文件的最后写入时间,和目前的时间对比,判断是否写完!
#7
感谢of123()提供的方法,觉得方法1是可行的,不过处理起来可能麻烦一点。方法2可能我这里不行了,他们不会这样做的。
谢谢你给的这个思维:)
如果有好的方法,请高手发言!等待你们的答案,要不我结算分数了!
谢谢你给的这个思维:)
如果有好的方法,请高手发言!等待你们的答案,要不我结算分数了!
#8
取的文件的最后写入时间,和目前的时间对比,判断是否写完!
请问qianfubin(慕白),这是什么意思,是指前一次扫描的时间和下一次的比较吗? 按照of123()的方法1的思维是吗?也就是前一次扫描到的文件和下一次的文件时间相比,看有没有变化!然后再做处理?
请问qianfubin(慕白),这是什么意思,是指前一次扫描的时间和下一次的比较吗? 按照of123()的方法1的思维是吗?也就是前一次扫描到的文件和下一次的文件时间相比,看有没有变化!然后再做处理?
#9
如果文件的最后写入时间和当前扫描时间一致(可以设定时间差:比如时间差小于<10秒),那就说明还在写文件。
#10
把文件写进数据库
#11
一般的文件(除数据库以外)可以用长度为0来检验(新文件),因为无论文件多长
在未写完之前长度都是0。此方法还可以跳过0文件。另外,再用错误处理就可以了
COPY文件要用COPY命令,然后就可以通过时间(FILEDATETIME)比较文件是否更新了。
在未写完之前长度都是0。此方法还可以跳过0文件。另外,再用错误处理就可以了
COPY文件要用COPY命令,然后就可以通过时间(FILEDATETIME)比较文件是否更新了。
#12
To:tanyx(不知道)
你这种说法好像有问题吧!ftp上传文件,应该是一点一点增加的,直到文件完成。如果是copy的话就不是很清楚了,没做测试。
请教 qianfubin(慕白)
你那api,传值怎么样得到结果呢!不是很明白。
你这种说法好像有问题吧!ftp上传文件,应该是一点一点增加的,直到文件完成。如果是copy的话就不是很清楚了,没做测试。
请教 qianfubin(慕白)
你那api,传值怎么样得到结果呢!不是很明白。