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ではファイルサイズが6バイトであっても0を示しています....何かアイデアはありますか?

編集:

私はそれを理解し、最初にファイルを閉じてから、適切なファイルサイズを表示するためにXPのfilesize.sizeを表示する必要がありました。

なぜこれがWindows7で機能するのかまだわかりません...何か考えはありますか?

4

1 に答える 1

2

私の最善の推測は、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 に答える