【问题标题】:File Size in VB for Windows XPWindows XP VB 中的文件大小
【发布时间】:2012-08-23 23:08:23
【问题描述】:

嗨,这听起来可能很奇怪,下面是我的 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 字节....有什么想法吗?

编辑:

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

仍然不知道为什么这在 Windows 7 上有效......有什么想法吗?

【问题讨论】:

  • 这看起来像 VBScript,而不是 VB.NET。请重新标记。
  • 进行了更正......所以有没有想过为什么在关闭'filewrt'之前在Windows 7中检索大小而不是在XP中?
  • @asawyer 的回答似乎可行。

标签: file vbscript windows-xp size


【解决方案1】:

我最好的猜测是在两个版本的 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 版本不会看到文件大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    • 2010-09-20
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    相关资源
    最近更新 更多