2012-04-16 254 views
6

如何確定文本文件的大小?在VB.NET中確定文件大小

我知道我可以只計算字符,但文件將是幾MB的大。

+1

我發現這個通過谷歌:http://www.dotnetperls.com/file-size-vbnet – 2012-04-16 15:05:03

+0

相關,但對於C#:* [你如何在C#中獲取文件大小?](http://stackoverflow.com/questions/1380839)* – 2015-06-26 14:18:35

回答

24
Dim myFile As New FileInfo("file.txt") 
Dim sizeInBytes As Long = myFile.Length 
+1

感謝您的回答。我不會問我是否知道這很簡單。 – 2012-04-27 16:29:51

1

使用file可能是危險的,因爲它也是一個類的名稱。 最好是如下的代碼是:

Dim myFile As New FileInfo("file.txt") 
Dim sizeInBytes As Long = myFile.Length 
+1

這已經足夠了,但你真的應該想出一個比'myFile'更好的名字。這是寫一些*描述*的好機會。 IntelliSense使得使用長名稱變得非常簡單。 – 2013-07-12 21:44:11

+0

-1用於撕掉前面答案中的代碼。這幾乎是接受答案的直接副本。 – cybermonkey 2014-11-09 15:30:19

+3

+1,因爲使用保留字(或類似的東西)是一種可怕的做法,我很高興這個評論阻止了我這樣做。 – Isaac 2015-05-01 22:53:53

-3

從對方的回答中的代碼不檢查文件的正確尺寸:

Dim myFile As New FileInfo("file.txt") 
Dim sizeInBytes As Long = MyFile.Length 

試試這個代碼,而不是

Dim infoReader As System.IO.FileInfo = _ 
    My.Computer.FileSystem.GetFileInfo("C:\testfile.txt") 
MsgBox("File C:\testfile.txt is " & infoReader.Length & " bytes.") 

它是從How to: Determine a File's Size in Visual Basic(MSDN)。

+0

爲什麼第一個代碼片段不起作用?兩個代碼片段的文件規範不同,第一個代碼片段(相對文件規範)的「file.txt」和第二個(絕對文件規範)的「C:\ testfile.txt」不同。第一個取決於當前目錄。如果它使用「C:\ testfile.txt」而不是「file.txt」,那麼第一個代碼片段不會工作嗎? – 2013-12-21 20:05:52

+0

這個答案顯然是錯誤的。 ***第一個代碼段不起作用的唯一原因是,如果您沒有權限讀取該文件。第一個代碼片段只是第二個代碼片段的縮寫,進一步表明你的「不工作」無效。*** – cybermonkey 2014-11-09 15:32:42