2

嗨,这听起来可能很奇怪,下面是我的 VB 代码

Const ForReading = 1, ForWriting = 2, ForAppending = 8

Set filesys = CreateObject("Scripting.FileSystemObject")
'Set fileapp = filesys.OpenTextFile("C:\TEST.txt", ForAppending, True) 
Set filewrt = filesys.OpenTextFile("C:\TEXT.txt", ForWriting, True) 
Set filesize = filesys.GetFile("C:\TEXT.txt")


filewrt.Write("HELOOO")
msgbox filesize.size
filewrt.close

此脚本在 Windows 7 中将 6 字节的值“6”显示为文件大小,但在 XP 中它显示为 0,即使文件大小为 6 字节....有什么想法吗?

编辑:

我想通了,必须先关闭文件,然后为 XP 显示 filesize.size 以显示正确的文件大小。

仍然不知道为什么这适用于 Windows 7 ......有什么想法吗?

4

1 回答 1

2

我最好的猜测是更改两个版本的 Windows 之间的文件缓存或FileSystemObject

http://msdn.microsoft.com/en-us/library/windows/desktop/aa364218%28v=vs.85%29.aspx

根据http://msdn.microsoft.com/en-us/library/z9ty6h50%28v=vs.84%29.aspx

Close 方法刷新缓冲区并关闭文件。

因此,在将 IO 刷新到磁盘之前,XP 版本不会看到文件大小。

于 2012-08-23T23:26:57.543 回答