Você está na página 1de 23

Seccin de ejemplos vb.

net

03 - Ejemplos para trabajar con archivos


en visual basic.net
Volver - Anterior - Siguiente

Cdigos enviados por Sebastin Perdomo

----------------------------------------------Contenido:
Contar archivos en un directorio
Crear un archivo vaco
Crear un archivo plano y aadirle texto
Listar archivos

Buscar dentro de un fichero


Comprobar si un directorio o archivo Existe
Renombrar
Mover
Eliminar archivos y carpetas
Crear un archivo temporal
Leer todo el contenido de un archivo de texto
Cargar directorios y archivos en un ListBox
Obtener propiedades

1 - Contar archivos en un directorio


Texto planoImprimir
1. Private Sub Form1_Load(ByVal sender As System.Object, _
2.

ByVal e As System.EventArgs) _

3.

Handles MyBase.Load

4.
5.

Try

6.
7.
8.

Dim ContadorDeArchivos As System.Collections.ObjectModel.ReadOnlyColl


ection(Of String)
'le indicamos el path que queremos

9.

ContadorDeArchivos = My.Computer.FileSystem.GetFiles("C:\WINDOWS")

10.

'nos devuelve la cantidad de archivos

11.
12.

MsgBox("La Cantidad de Archivos es: " & CStr(ContadorDeArchivos.Count))

13.

' error

14.
15.

Catch oExcep As Exception


MsgBox("Descripcin del error : " & _

16.
17.

oExcep.Message, MsgBoxStyle.Critical, "Error")


End Try

18.
19. End Sub

2 - Crear un archivo vaco ( mtodo Create - objeto


System.IO.File )
Texto planoImprimir
1. Private Sub Form1_Load(ByVal sender As System.Object, _
2.

ByVal e As System.EventArgs) Handles MyBase.Load

3.
4.
5.

Try

6.

Dim Archivo As System.IO.FileStream

7.

' crea un archivo vacio prueba.txt

8.

Archivo = System.IO.File.Create("c:\Prueba.txt")

9.
10.
11.
12.

' error
Catch oe As Exception
MsgBox(oe.Message, MsgBoxStyle.Critical)
End Try

13. End Sub

3 - Crear un archivo plano y aadirle texto ( mtodo


WriteLine del objeto StreamWriter. Espacio de nombres
System.IO )
Texto planoImprimir
1. Option Explicit On
2.
3. Imports System.IO
4.
5. Public Class Form1
6.
7.

Private Sub Form1_Load(ByVal sender As System.Object, _

8.

ByVal e As System.EventArgs) _

9.

Handles MyBase.Load

10.
11.

Dim oSW As New StreamWriter("C:\archivo_prueba.txt")

12.
13.

Dim Linea As String = "Lnea de texto " & vbNewLine & "Otra linea de texto"

14.

oSW.WriteLine(Linea)

15.

oSW.Flush()

16.
17.

End Sub

18. End Class

4 - My.Computer.FileSystem.GetFiles - Listar archivos


Ejemplo que carga y lista en un control listbox, los archivos de una carpeta
Colocar un ListBox1
Texto planoImprimir
1. Private Sub Form1_Load(ByVal sender As System.Object, _
2.

ByVal e As System.EventArgs) Handles MyBase.Load

3.
4.

Try

5.

' lista todos los archivos dll del directorio windows _

6.

' SearchAllSubDirectories : incluye los Subdirectorios

7.

' SearchTopLevelOnly : para buscar solo en el nivel actual

8.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

9.

For Each Archivo As String In My.Computer.FileSystem.GetFiles( _

10.

"c:\windows", _

11.

FileIO.SearchOption.SearchAllSubDirectories, _

12.

"*.dll")

13.
14.

ListBox1.Items.Add(Archivo)

15.

Next

16.

' errores

17.

Catch oe As Exception

18.

MsgBox(oe.Message, MsgBoxStyle.Critical)

19.

End Try

20. End Sub

5 - My.Computer.FileSystem.FindInFiles - Buscar dentro


de un fichero
Lo siguiente Busca en un directorio archivos que contengan una cadena de texto
determinada
Controles : un ListBox1 en el form
Texto planoImprimir
1. Private Sub Form1_Load(ByVal sender As System.Object, _
2.

ByVal e As System.EventArgs) Handles MyBase.Load

3.
4.

Try

5.
6.

Dim Archivo As System.Collections.ObjectModel.ReadOnlyCollection(Of Stri


ng)

7.

' busca "Hola mundo" en un solo nivel ( SearchTopLevelOnly ) en el directorio


c:

8.

Archivo = My.Computer.FileSystem.FindInFiles( _

9.

"C:\", _

10.

"Hola Mundo", _

11.

True, _

12.

FileIO.SearchOption.SearchTopLevelOnly)

13.

' recorre la lista

14.

For Each name As String In Archivo

15.

' Agrega

16.

ListBox1.Items.Add(name)

17.

Next

18.

' error

19.
20.
21.

Catch oe As Exception
MsgBox(oe.Message, MsgBoxStyle.Critical)
End Try

22. nd Sub

6 - Comprobar si un directorio o archivo Existe


Propiedad Exist del objeto Directory y el objeto File. (Espacio de nombres System.IO)
Texto planoImprimir
1. Option Explicit On
2.
3. Imports System.IO

4.
5. Public Class Form1
6.
7.

Private Sub Form1_Load(ByVal sender As System.Object, _

8.

ByVal e As System.EventArgs) _

9.

Handles MyBase.Load

10.
11.

' Directory

12.

If Directory.Exists("c:\windows") Then

13.
14.
15.
16.

MsgBox("La carpeta existe", MsgBoxStyle.Information)


Else
MsgBox("No existe", MsgBoxStyle.Information)
End If

17.
18.
19.
20.
21.

If File.Exists("c:\windows\explorer.exe") Then
MsgBox("Existe", MsgBoxStyle.Information)
Else
MsgBox("No existe", MsgBoxStyle.Information)

22.

End If

23.

End Sub

24. End Class

7 - Renombrar un archivo
( My.Computer.FileSystem.RenameFile )
Texto planoImprimir
1. Option Explicit On
2.
3. Public Class Form1
4.

Private Sub Form1_Load( _

5.

ByVal sender As System.Object, _

6.

ByVal e As System.EventArgs) Handles MyBase.Load

7.

' ruta del archivo y el nuevo nombre

8.

Dim sPath As String = "c:\archivo.txt"

9.

Dim sNuevoNombre As String = "archivo_Renombrado.txt"

10.
11.

Try

12.

' Renombrarlo con la funcin renameFile

13.

My.Computer.FileSystem.RenameFile(sPath, sNuevoNombre)

14.

MsgBox("Ok.", MsgBoxStyle.Information, "Renombrar archivo")

15.

' errores

16.
17.
18.
19.
20.

Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
End Try
End Sub

21. End Class

8 - Mover
( My.Computer.FileSystem.MoveFile )
Texto planoImprimir
1. Option Explicit On
2.
3. Public Class Form1
4.

Private Sub Form1_Load( _

5.

ByVal sender As System.Object, _

6.

ByVal e As System.EventArgs) Handles MyBase.Load

7.

' ruta del archivo origen y el nuevo path y nombre

8.

Dim sArchivoOrigen As String = "c:\archivo.txt"

9.

Dim sRutaDestino As String = "d:\archivo.txt"

10.
11.

Try

12.

' Mover el fichero.si existe lo sobreescribe

13.

My.Computer.FileSystem.MoveFile(sArchivoOrigen, _

14.

sRutaDestino, _

15.

True)

16.

MsgBox("Ok.", MsgBoxStyle.Information, "Mover archivo")

17.

' errores

18.
19.
20.
21.

Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
End Try
End Sub

22. End Class

9 Eliminar archivos y carpetas


( My.Computer.FileSystem.DeleteFile )
( My.Computer.FileSystem.DeleteDirectory )
Texto planoImprimir
1. Option Explicit On
2.
3. Public Class Form1
4.

Private Sub Form1_Load( _

5.

ByVal sender As System.Object, _

6.

ByVal e As System.EventArgs) Handles MyBase.Load

7.
8.

Try

9.

' Eliminar el archivo, mostrando el cuadro

10.

'de dilogo de eliminar de windows para confirmar

11.

Dim sdir As String = "c:\Nueva carpeta"

12.

Dim Spath As String = "c:\archivo.txt"

13.
14.

' Archivo

15.

My.Computer.FileSystem.DeleteFile( _

16.

Spath, _

17.

FileIO.UIOption.AllDialogs, _

18.

FileIO.RecycleOption.SendToRecycleBin, _

19.

FileIO.UICancelOption.DoNothing)

20.
21.

' carpeta

22.

My.Computer.FileSystem.DeleteDirectory( _

23.

sdir, _

24.

FileIO.UIOption.AllDialogs, _

25.

FileIO.RecycleOption.SendToRecycleBin, _

26.

FileIO.UICancelOption.DoNothing)

27.
28.
29.
30.
31.
32.

' errores
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
End Try
End Sub

33. End Class

10 - Crear un archivo temporal


( My.Computer.FileSystem.GetTempFileName )
Texto planoImprimir
1. Option Explicit On
2.
3. Public Class Form1
4.

Private Sub Form1_Load( _

5.

ByVal sender As System.Object, _

6.

ByVal e As System.EventArgs) Handles MyBase.Load

7.
8.

Try

9.

' crea el archivo en el directorio temp del usuario

10.

Dim sTempFile As String = My.Computer.FileSystem.GetTempFileName.To


String

11.

' muestra la ruta

12.

MsgBox("Archivo creado en la direccin :" & _

13.

vbNewLine & _

14.

sTempFile, _

15.

MsgBoxStyle.Information, "Ruta del temporal")

16.
17.
18.
19.
20.

' errores
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
End Try

21.

End Sub

22. End Class

11 - Leer todo el contenido de un archivo de texto en una


solo operacin, y almacenarlo en una variable
( My.Computer.FileSystem.ReadAllText )
Texto planoImprimir
1. Option Explicit On
2.
3. Public Class Form1
4.

Private Sub Form1_Load( _

5.

ByVal sender As System.Object, _

6.

ByVal e As System.EventArgs) Handles MyBase.Load

7.
8.

Try

9.

Dim SPath As String = "c:\un_archivo.txt"

10.

Dim sContent As String = vbNullString

11.
12.

With My.Computer.FileSystem

13.

' verifica si existe el path

14.

If .FileExists(SPath) Then

15.

' lee todo el contenido

16.

sContent = .ReadAllText(SPath)

17.

MsgBox(sContent.ToString, MsgBoxStyle.Information, "Datos")

18.

Else

19.

MsgBox("ruta invlida", MsgBoxStyle.Critical, "error")

20.

End If

21.

End With

22.

' errores

23.
24.
25.
26.

Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
End Try
End Sub

27. End Class

12 - Cargar directorios y archivos en un ListBox


( Mtodos GetFiles y GetDirectories)
Colocar en un formulario dos controles ListBox
Texto planoImprimir
1. Option Explicit On
2. Option Strict On
3.
4. Imports System.IO
5.

6. Public Class Form1


7.
8.

Private Sub Form1_Load( _

9.

ByVal sender As System.Object, _

10.

ByVal e As System.EventArgs) Handles MyBase.Load

11.
12.
13.

' Obtener todos los archivos .exe del directorio windows ( inclyendo subdirecto
rios )
For Each archivos As String In Directory.GetFiles("c:\windows", _

14.

"*.exe", _

15.

SearchOption.AllDirectories)

16.

' extraer el nombre de la ruta

17.

archivos = archivos.Substring(archivos.LastIndexOf("\") + 1).ToString

18.

' Agregar el valor al listbox

19.

ListBox1.Items.Add(archivos.ToString)

20.

Next

21.
22.
23.

' Obtener todos los directorios del directorio c: ( un solo nivel )


For Each archivos As String In Directory.GetDirectories("c:\", "*.*", SearchOp
tion.TopDirectoryOnly)

24.

' extraer el nombre de la carpeta de la ruta completa

25.

archivos = archivos.Substring(archivos.LastIndexOf("\") + 1).ToString

26.

' Agregar el valor

27.

ListBox2.Items.Add(archivos.ToString)

28.

Next

29.
30.

End Sub

31. End Class

13 - Obtener propiedades
Ejemplo que usa la clase FileInfo de system.IO para obtener algunas propiedades y datos de
archivos ( el nombre , la fecha y la hora de modificacin en formato corto , el tamao en
bytes y la extensin )
Colocar un control Listview, un button y un control TextBox

Cdigo fuente en el formulario principal


Texto planoImprimir
1. Option Explicit On
2. Option Strict On
3.

4. Imports System.IO
5.
6. Public Class Form1
7.
8.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.E


ventArgs) Handles MyBase.Load

9.

' agregar columnas

10.

With ListView1

11.

.Columns.Add("Nombre", 150)

12.

.Columns.Add("Fecha y hora de modificacin", 150)

13.

.Columns.Add("Tamao - bytes ", 100)

14.

.Columns.Add("Extensin", 80)

15.
16.

.View = View.Details

17.

.GridLines = True

18.

End With

19.

Button1.Text = "Listar propiedades"

20.

TextBox1.Text = "c:\windows"

21.

End Sub

22.
23.

Private Sub Button1_Click( _

24.

ByVal sender As System.Object, _

25.

ByVal e As System.EventArgs) Handles Button1.Click

26.

27.
28.

ListView1.Items.Clear()

29.

Try

30.

' recorrer los ficheros en la coleccin

31.

For Each sFichero As String In Directory.GetFiles( _

32.

TextBox1.Text, "*.*", _

33.

SearchOption.TopDirectoryOnly)

34.
35.

' Crear nuevo objeto FileInfo

36.

Dim Archivo As New FileInfo(sFichero)

37.
38.

' Crear nuevo objeto ListViewItem

39.

Dim item As New ListViewItem(Archivo.Name.ToString)

40.
41.

' cargar los datos y las propiedades

42.

With item

43.
44.

' LastWriteTime - fecha de modificacin

45.

.SubItems.Add(Archivo.LastWriteTime.ToShortDateString & " " & _

46.

Archivo.LastWriteTime.ToShortTimeString)

47.

' Length - tamao en bytes

48.

.SubItems.Add(Archivo.Length.ToString)

49.

50.

' Extension - extensin

51.

.SubItems.Add(Archivo.Extension.ToString)

52.
53.

ListView1.Items.Add(item) ' aadir el item

54.
55.

End With

56.
57.

Next

58.

' errores

59.

Catch ex As Exception

60.

Debug.Print(ex.Message.ToString)

61.

Beep()

62.

End Try

63.
64.

End Sub

65. End Class

Enlaces relacionados a archivos en visual basic 6.0

Buscar con fso en vb 6.0

Buscar y reemplazar cadenas dentro de archivos

Listar y ordenar en forma alfabtica

Explorar

Copiar

Buscar con el Api de windows

Analizar

Encriptar

Drag drop

Eliminar usando el Api

Cmo: Eliminar un archivo en Visual Basic


Visual Studio 2005
Otras versiones

Personas que lo han encontrado til: 1 de 2 - Valorar este tema

El mtodo DeleteFile del objeto My.Computer.FileSystem permite eliminar archivos.


Entre las opciones que ofrece se encuentran: si desea enviar el archivo eliminado a la
Papelera de reciclaje, si se debe pedir al usuario que confirme la eliminacin y qu hacer
si el usuario cancela la operacin.
Para eliminar un archivo de texto

Utilice el mtodo DeleteFile para eliminar el archivo. El cdigo siguiente muestra


cmo eliminar el archivo denominado test.txt.
VB
My.Computer.FileSystem.DeleteFile("C:\test.txt")

Para eliminar un archivo de texto y pedirle al usuario que confirme


que se debe eliminar el archivo

Utilice el mtodo DeleteFile para eliminar el archivo, estableciendo showUI en


AllDialogs. El cdigo siguiente muestra cmo eliminar el archivo denominado
test.txt y permite al usuario confirmar la eliminacin del archivo.
VB
My.Computer.FileSystem.DeleteFile("C:\test.txt", _
FileIO.UIOption.AllDialogs,
FileIO.RecycleOption.DeletePermanently,
FileIO.UICancelOption.DoNothing)

Para eliminar un archivo de texto y enviarlo a la Papelera de Reciclaje

Utilice el mtodo DeleteFile para eliminar el archivo, especificando


SendToRecycleBin para el parmetro recycle. El cdigo siguiente muestra cmo
eliminar el archivo denominado test.txt y enviarlo a la Papelera de Reciclaje.
VB
My.Computer.FileSystem.DeleteFile("C:\test.txt", _
FileIO.UIOption.AllDialogs, FileIO.RecycleOption.SendToRecycleBin)

Programacin eficaz

Las condiciones siguientes pueden producir una excepcin:

La ruta de acceso no es vlida por una de las razones siguientes: es una cadena de
longitud cero, slo contiene un espacio en blanco, contiene caracteres no vlidos o
es una ruta de acceso de dispositivo (empieza por \\.\) (ArgumentException).

La ruta de acceso no es vlida porque es Nothing (ArgumentNullException).

La ruta supera la longitud mxima definida por el sistema (PathTooLongException).

Un nombre de archivo o de carpeta en la ruta de acceso contiene dos puntos (:) o


est en un formato no vlido (NotSupportedException).

El archivo est en uso (IOException).

El usuario no tiene los permisos necesarios para ver la ruta de acceso


(SecurityException).

El archivo no existe (FileNotFoundException).

El usuario no tiene el permiso para eliminar el archivo o el archivo es de slo


lectura (UnauthorizedAccessException).

Existe una situacin de confianza parcial en la que el usuario no tiene los permisos
necesarios (SecurityException).

El usuario cancel la operacin y el parmetro onUserCancel est establecido en


Microsoft.VisualBasic.FileIO.UICancelOption.ThrowException
(OperationCanceledException).

Vea tambin
Tareas
Cmo: Obtener la coleccin de archivos de un directorio en Visual Basic
Cmo: Eliminar un directorio en Visual Basic
Referencia
UICancelOption (Enumeracin)
My.Computer.FileSystem (Objeto)
UIOption (Enumeracin)
RecycleOption (Enumeracin)

Você também pode gostar