2012-04-16 37 views
6

¿Cómo puedo determinar el tamaño de un archivo de texto?Determinación del tamaño del archivo en VB.NET

Sé que podría simplemente contar los caracteres, pero el archivo tendrá varios MB de tamaño.

+1

me encontré por Google: http://www.dotnetperls.com/file-size-vbnet –

+0

relacionada, pero para C#: * [¿Cómo se obtiene el tamaño del archivo en C#?] (Http://stackoverflow.com/questions/1380839) * –

Respuesta

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

Gracias por su respuesta. No hubiera preguntado si hubiera sabido que era tan simple. –

1

El uso de file puede ser peligroso, ya que es también el nombre de una clase. Es mejor para codificar de la siguiente manera:

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

Esto es bastante cierto, pero realmente debería encontrar un nombre mejor que 'myFile'. Es una buena oportunidad para escribir algo * descriptivo *. IntelliSense hace que usar nombres largos sea lo suficientemente fácil. –

+0

-1 por copiar el código en la respuesta anterior. Esto es más o menos una copia directa de la respuesta aceptada. – cybermonkey

+3

+1 porque usar palabras reservadas (o algo parecido) es una práctica horrible y me alegra que este comentario me haya impedido hacerlo. – Isaac

-3

el código de la otra respuesta no comprueba el tamaño correcto del archivo:

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

probar este código en lugar

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

Es de How to: Determine a File's Size in Visual Basic (MSDN).

+0

¿Por qué no funcionaría el primer fragmento de código? La especificación del archivo es diferente para los dos fragmentos de código, "file.txt" para el primer fragmento de código (especificación relativa del archivo) y "C: \ testfile.txt" para el segundo (especificación absoluta del archivo). El primero depende del directorio actual. ¿No funcionaría el primer fragmento de código si usaba "C: \ testfile.txt" en lugar de "file.txt"? –

+0

Esta respuesta es simplemente incorrecta. *** La única razón por la que el primer fragmento de código no funcionará es si no tiene los permisos para leer el archivo. El primer fragmento de código es solo una versión abreviada del segundo, lo que hace que su 'no funciona' no sea válido .. *** – cybermonkey

Cuestiones relacionadas