1 - Contar archivos en un directorio
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs)Handles MyBase.Load
Try
Dim ContadorDeArchivos As System.Collections.ObjectModel.ReadOnlyCollection(Of String)
'le indicamos el path que queremos
ContadorDeArchivos = My.Computer.FileSystem.GetFiles("C:\WINDOWS")
'nos devuelve la cantidad de archivos
MsgBox("La Cantidad de Archivos es: " & CStr(ContadorDeArchivos.Count))
' error
Catch oExcep As Exception
MsgBox("Descripción del error : " &oExcep.Message, MsgBoxStyle.Critical, "Error")
End Try
End Sub
ByVal e As System.EventArgs)Handles MyBase.Load
Try
Dim ContadorDeArchivos As System.Collections.ObjectModel.ReadOnlyCollection(Of String)
'le indicamos el path que queremos
ContadorDeArchivos = My.Computer.FileSystem.GetFiles("C:\WINDOWS")
'nos devuelve la cantidad de archivos
MsgBox("La Cantidad de Archivos es: " & CStr(ContadorDeArchivos.Count))
' error
Catch oExcep As Exception
MsgBox("Descripción del error : " &oExcep.Message, MsgBoxStyle.Critical, "Error")
End Try
End Sub
2 - Crear un archivo vacío ( método Create - objeto System.IO.File )
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Try
Dim Archivo As System.IO.FileStream
' crea un archivo vacio prueba.txt
Archivo = System.IO.File.Create("c:\Prueba.txt")
' error
Catch oe As Exception
MsgBox(oe.Message, MsgBoxStyle.Critical)
End Try
End Sub
ByVal e As System.EventArgs) Handles MyBase.Load
Try
Dim Archivo As System.IO.FileStream
' crea un archivo vacio prueba.txt
Archivo = System.IO.File.Create("c:\Prueba.txt")
' error
Catch oe As Exception
MsgBox(oe.Message, MsgBoxStyle.Critical)
End Try
End Sub
3 - Crear un archivo plano y añadirle texto ( método WriteLine
del objeto StreamWriter. Espacio de nombres System.IO )
Option Explicit On
Imports System.IO
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs)Handles MyBase.Load
Dim oSW As New StreamWriter("C:\archivo_prueba.txt")
Dim Linea As String = "Línea de texto " & vbNewLine & "Otra linea de texto"
oSW.WriteLine(Linea)
oSW.Flush()
End Sub
End Class
Imports System.IO
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs)Handles MyBase.Load
Dim oSW As New StreamWriter("C:\archivo_prueba.txt")
Dim Linea As String = "Línea de texto " & vbNewLine & "Otra linea de texto"
oSW.WriteLine(Linea)
oSW.Flush()
End Sub
End Class
4 - My.Computer.FileSystem.GetFiles - Listar archivos
Ejemplo que carga y lista en un control listbox, los archivos de unacarpeta
Colocar un ListBox1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Try
' lista todos los archivos dll del directorio windows _
' SearchAllSubDirectories : incluye los Subdirectorios
' SearchTopLevelOnly : para buscar solo en el nivel actual
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
For Each Archivo As String In My.Computer.FileSystem.GetFiles( _
"c:\windows",FileIO.SearchOption.SearchAllSubDirectories,"*.dll")
ListBox1.Items.Add(Archivo)
Next
' errores
Catch oe As Exception
MsgBox(oe.Message, MsgBoxStyle.Critical)
End Try
End Sub
ByVal e As System.EventArgs) Handles MyBase.Load
Try
' lista todos los archivos dll del directorio windows _
' SearchAllSubDirectories : incluye los Subdirectorios
' SearchTopLevelOnly : para buscar solo en el nivel actual
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
For Each Archivo As String In My.Computer.FileSystem.GetFiles( _
"c:\windows",FileIO.SearchOption.SearchAllSubDirectories,"*.dll")
ListBox1.Items.Add(Archivo)
Next
' errores
Catch oe As Exception
MsgBox(oe.Message, MsgBoxStyle.Critical)
End Try
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
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Try
Dim Archivo As System.Collections.ObjectModel.ReadOnlyCollection(Of String)
' busca "Hola mundo" en un solo nivel ( SearchTopLevelOnly ) en el directorio c:
Archivo = My.Computer.FileSystem.FindInFiles( _
"C:\","Hola Mundo",True, _
FileIO.SearchOption.SearchTopLevelOnly)
' recorre la lista
For Each name As String In Archivo
' Agrega
ListBox1.Items.Add(name)
Next
' error
Catch oe As Exception
MsgBox(oe.Message, MsgBoxStyle.Critical)
End Try
End Sub
ByVal e As System.EventArgs) Handles MyBase.Load
Try
Dim Archivo As System.Collections.ObjectModel.ReadOnlyCollection(Of String)
' busca "Hola mundo" en un solo nivel ( SearchTopLevelOnly ) en el directorio c:
Archivo = My.Computer.FileSystem.FindInFiles( _
"C:\","Hola Mundo",True, _
FileIO.SearchOption.SearchTopLevelOnly)
' recorre la lista
For Each name As String In Archivo
' Agrega
ListBox1.Items.Add(name)
Next
' error
Catch oe As Exception
MsgBox(oe.Message, MsgBoxStyle.Critical)
End Try
End Sub
6 - Comprobar si un directorio o archivo Existe
Propiedad Exist del objeto Directory y el objeto File. (Espacio de nombresSystem.IO)
Option Explicit On
Imports System.IO
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs)Handles MyBase.Load
' Directory
If Directory.Exists("c:\windows") Then
MsgBox("La carpeta existe", MsgBoxStyle.Information)
Else
MsgBox("No existe", MsgBoxStyle.Information)
End If
If File.Exists("c:\windows\explorer.exe") Then
MsgBox("Existe", MsgBoxStyle.Information)
Else
MsgBox("No existe", MsgBoxStyle.Information)
End If
End Sub
End Class
Imports System.IO
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs)Handles MyBase.Load
' Directory
If Directory.Exists("c:\windows") Then
MsgBox("La carpeta existe", MsgBoxStyle.Information)
Else
MsgBox("No existe", MsgBoxStyle.Information)
End If
If File.Exists("c:\windows\explorer.exe") Then
MsgBox("Existe", MsgBoxStyle.Information)
Else
MsgBox("No existe", MsgBoxStyle.Information)
End If
End Sub
End Class
7 - Renombrar un archivo
( My.Computer.FileSystem.RenameFile )Option Explicit On
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' ruta del archivo y el nuevo nombre
Dim sPath As String = "c:\archivo.txt"
Dim sNuevoNombre As String = "archivo_Renombrado.txt"
Try
' Renombrarlo con la función renameFile
My.Computer.FileSystem.RenameFile(sPath, sNuevoNombre)
MsgBox("Ok.", MsgBoxStyle.Information, "Renombrar archivo")
' errores
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
End Try
End Sub
End Class
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' ruta del archivo y el nuevo nombre
Dim sPath As String = "c:\archivo.txt"
Dim sNuevoNombre As String = "archivo_Renombrado.txt"
Try
' Renombrarlo con la función renameFile
My.Computer.FileSystem.RenameFile(sPath, sNuevoNombre)
MsgBox("Ok.", MsgBoxStyle.Information, "Renombrar archivo")
' errores
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
End Try
End Sub
End Class
8 - Mover
( My.Computer.FileSystem.MoveFile )Option Explicit On
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' ruta del archivo origen y el nuevo path y nombre
Dim sArchivoOrigen As String = "c:\archivo.txt"
Dim sRutaDestino As String = "d:\archivo.txt"
Try
' Mover el fichero.si existe lo sobreescribe
My.Computer.FileSystem.MoveFile(sArchivoOrigen,sRutaDestino,True)
MsgBox("Ok.", MsgBoxStyle.Information, "Mover archivo")
' errores
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
End Try
End Sub
End Class
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' ruta del archivo origen y el nuevo path y nombre
Dim sArchivoOrigen As String = "c:\archivo.txt"
Dim sRutaDestino As String = "d:\archivo.txt"
Try
' Mover el fichero.si existe lo sobreescribe
My.Computer.FileSystem.MoveFile(sArchivoOrigen,sRutaDestino,True)
MsgBox("Ok.", MsgBoxStyle.Information, "Mover archivo")
' errores
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
End Try
End Sub
End Class
9 Eliminar archivos y carpetas
( My.Computer.FileSystem.DeleteFile )( My.Computer.FileSystem.DeleteDirectory )
Option Explicit On
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Try
' Eliminar el archivo, mostrando el cuadro
'de diálogo de eliminar de windows para confirmar
Dim sdir As String = "c:\Nueva carpeta"
Dim Spath As String = "c:\archivo.txt"
' Archivo
My.Computer.FileSystem.DeleteFile( _
Spath,FileIO.UIOption.AllDialogs, _
FileIO.RecycleOption.SendToRecycleBin, _
FileIO.UICancelOption.DoNothing)
' carpeta
My.Computer.FileSystem.DeleteDirectory( _
sdir,FileIO.UIOption.AllDialogs, _
FileIO.RecycleOption.SendToRecycleBin, _
FileIO.UICancelOption.DoNothing)
' errores
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
End Try
End Sub
End Class
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Try
' Eliminar el archivo, mostrando el cuadro
'de diálogo de eliminar de windows para confirmar
Dim sdir As String = "c:\Nueva carpeta"
Dim Spath As String = "c:\archivo.txt"
' Archivo
My.Computer.FileSystem.DeleteFile( _
Spath,FileIO.UIOption.AllDialogs, _
FileIO.RecycleOption.SendToRecycleBin, _
FileIO.UICancelOption.DoNothing)
' carpeta
My.Computer.FileSystem.DeleteDirectory( _
sdir,FileIO.UIOption.AllDialogs, _
FileIO.RecycleOption.SendToRecycleBin, _
FileIO.UICancelOption.DoNothing)
' errores
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
End Try
End Sub
End Class
10 - Crear un archivo temporal
( My.Computer.FileSystem.GetTempFileName )Option Explicit On
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Try
' crea el archivo en el directorio temp del usuario
Dim sTempFile As String = My.Computer.FileSystem.GetTempFileName.ToString
' muestra la ruta
MsgBox("Archivo creado en la dirección :" &vbNewLine & _
sTempFile,MsgBoxStyle.Information, "Ruta del temporal")
' errores
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
End Try
End Sub
End Class
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Try
' crea el archivo en el directorio temp del usuario
Dim sTempFile As String = My.Computer.FileSystem.GetTempFileName.ToString
' muestra la ruta
MsgBox("Archivo creado en la dirección :" &vbNewLine & _
sTempFile,MsgBoxStyle.Information, "Ruta del temporal")
' errores
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
End Try
End Sub
End Class
11 - Leer todo el contenido de un archivo de texto en una
solo operación, y almacenarlo en una variable
( My.Computer.FileSystem.ReadAllText )Option Explicit On
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Try
Dim SPath As String = "c:\un_archivo.txt"
Dim sContent As String = vbNullString
With My.Computer.FileSystem
' verifica si existe el path
If .FileExists(SPath) Then
' lee todo el contenido
sContent = .ReadAllText(SPath)
MsgBox(sContent.ToString, MsgBoxStyle.Information, "Datos")
Else
MsgBox("ruta inválida", MsgBoxStyle.Critical, "error")
End If
End With
' errores
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
End Try
End Sub
End Class
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Try
Dim SPath As String = "c:\un_archivo.txt"
Dim sContent As String = vbNullString
With My.Computer.FileSystem
' verifica si existe el path
If .FileExists(SPath) Then
' lee todo el contenido
sContent = .ReadAllText(SPath)
MsgBox(sContent.ToString, MsgBoxStyle.Information, "Datos")
Else
MsgBox("ruta inválida", MsgBoxStyle.Critical, "error")
End If
End With
' errores
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
End Try
End Sub
End Class
12 - Cargar directorios y archivos en un ListBox ( Métodos
GetFiles y GetDirectories)
Colocar en un formulario dos controles ListBoxOption Explicit On
Option Strict On
Imports System.IO
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' Obtener todos los archivos .exe del directorio windows ( inclyendo subdirectorios )
For Each archivos As String In Directory.GetFiles("c:\windows","*.exe", _
SearchOption.AllDirectories)
' extraer el nombre de la ruta
archivos = archivos.Substring(archivos.LastIndexOf("\") + 1).ToString
' Agregar el valor al listbox
ListBox1.Items.Add(archivos.ToString)
Next
' Obtener todos los directorios del directorio c: ( un solo nivel )
For Each archivos As String In Directory.GetDirectories("c:\", "*.*", SearchOption.TopDirectoryOnly)
' extraer el nombre de la carpeta de la ruta completa
archivos = archivos.Substring(archivos.LastIndexOf("\") + 1).ToString
' Agregar el valor
ListBox2.Items.Add(archivos.ToString)
Next
End Sub
End Class
Option Strict On
Imports System.IO
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' Obtener todos los archivos .exe del directorio windows ( inclyendo subdirectorios )
For Each archivos As String In Directory.GetFiles("c:\windows","*.exe", _
SearchOption.AllDirectories)
' extraer el nombre de la ruta
archivos = archivos.Substring(archivos.LastIndexOf("\") + 1).ToString
' Agregar el valor al listbox
ListBox1.Items.Add(archivos.ToString)
Next
' Obtener todos los directorios del directorio c: ( un solo nivel )
For Each archivos As String In Directory.GetDirectories("c:\", "*.*", SearchOption.TopDirectoryOnly)
' extraer el nombre de la carpeta de la ruta completa
archivos = archivos.Substring(archivos.LastIndexOf("\") + 1).ToString
' Agregar el valor
ListBox2.Items.Add(archivos.ToString)
Next
End Sub
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 modificación en formato corto , el tamaño en bytes y la extensión )Colocar un control Listview, un button y un control TextBox
Código fuente en el formulario principal
Option Explicit On
Option Strict On
Imports System.IO
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' agregar columnas
With ListView1
.Columns.Add("Nombre", 150)
.Columns.Add("Fecha y hora de modificación", 150)
.Columns.Add("Tamaño - bytes ", 100)
.Columns.Add("Extensión", 80)
.View = View.Details
.GridLines = True
End With
Button1.Text = "Listar propiedades"
TextBox1.Text = "c:\windows"
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
ListView1.Items.Clear()
Try
' recorrer los ficheros en la colección
For Each sFichero As String In Directory.GetFiles( _
TextBox1.Text, "*.*",SearchOption.TopDirectoryOnly)
' Crear nuevo objeto FileInfo
Dim Archivo As New FileInfo(sFichero)
' Crear nuevo objeto ListViewItem
Dim item As New ListViewItem(Archivo.Name.ToString)
' cargar los datos y las propiedades
With item
' LastWriteTime - fecha de modificación
.SubItems.Add(Archivo.LastWriteTime.ToShortDateString & " " & _
Archivo.LastWriteTime.ToShortTimeString)
' Length - tamaño en bytes
.SubItems.Add(Archivo.Length.ToString)
' Extension - extensión
.SubItems.Add(Archivo.Extension.ToString)
ListView1.Items.Add(item) ' añadir el item
End With
Next
' errores
Catch ex As Exception
Debug.Print(ex.Message.ToString)
Beep()
End Try
End Sub
End Class
Option Strict On
Imports System.IO
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' agregar columnas
With ListView1
.Columns.Add("Nombre", 150)
.Columns.Add("Fecha y hora de modificación", 150)
.Columns.Add("Tamaño - bytes ", 100)
.Columns.Add("Extensión", 80)
.View = View.Details
.GridLines = True
End With
Button1.Text = "Listar propiedades"
TextBox1.Text = "c:\windows"
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
ListView1.Items.Clear()
Try
' recorrer los ficheros en la colección
For Each sFichero As String In Directory.GetFiles( _
TextBox1.Text, "*.*",SearchOption.TopDirectoryOnly)
' Crear nuevo objeto FileInfo
Dim Archivo As New FileInfo(sFichero)
' Crear nuevo objeto ListViewItem
Dim item As New ListViewItem(Archivo.Name.ToString)
' cargar los datos y las propiedades
With item
' LastWriteTime - fecha de modificación
.SubItems.Add(Archivo.LastWriteTime.ToShortDateString & " " & _
Archivo.LastWriteTime.ToShortTimeString)
' Length - tamaño en bytes
.SubItems.Add(Archivo.Length.ToString)
' Extension - extensión
.SubItems.Add(Archivo.Extension.ToString)
ListView1.Items.Add(item) ' añadir el item
End With
Next
' errores
Catch ex As Exception
Debug.Print(ex.Message.ToString)
Beep()
End Try
End Sub
End Class
buen bloc con buena informacion
ResponderEliminarAqui pueden encontrar varios ejercicios de VB.Net 2010 con su codigo fuente ---> http://ayudaveloz.blogspot.com/
ResponderEliminarmuy buena información me ayudo demasiado gracias
ResponderEliminarMuy bien , resulto excelente la información.
ResponderEliminarTengo una consulta:
1.- luego de almacenar datos en un archivo.txt quiero tomar estos datos por ejemplo
* Nombre
* Clave
Estos estas asi en el texto.txt
roberto
12345
y a cada uno de ellos colcoarlos en una variable.
Les agradecería mucho, ojo pero que sea en un archivo plano (.txt) por favor nuevamente muchas gracias
Hola roberto, en mi caso lo que hice fue usar el tamaño de la variable Ej: la variable es un string de 20 chars, para crear el archivo creo una funcion que si le faltan lugares al dato para completar los 20 char, los completa con espacios, y al buscar los datos en el archivo, se que los primeros 20 chars son la primer variable, los segundos 20 chars son la segunda variable y asi... Saludos
EliminarMuy buen blog y muy buena informacion, soy un programador novato y me ayudaste mucho! gracias!
ResponderEliminarImportsSystem.Net.FtpWebRequest
ResponderEliminarImportsSystem.Net
ImportsSystem.IO
PublicClassFtp
Dimhost,user,passAsString
PublicSubNew(ByValhostAsString,ByValuserAsString,ByValpassAsString)
Me.host=host
Me.user=user
Me.pass=pass
EndSub
PublicFunctioneliminarFichero(ByValficheroAsString)AsString
DimpeticionFTPAsFtpWebRequest
'CreamosunapeticiónFTPconladireccióndelficheroa
peticionFTP=CType(WebRequest.Create(NewUri(fichero)),FtpWebRequest)
'Fijamoselusuarioylacontraseña
peticionFTP.Credentials=NewNetworkCredential(user,pass)
'Seleccionamoselcomandoquevamosautilizar:Eliminarunfichero
peticionFTP.Method=WebRequestMethods.Ftp.DeleteFile
peticionFTP.UsePassive=False
Try
DimrespuestaFTPAsFtpWebResponse
respuestaFTP=CType(peticionFTP.GetResponse(),FtpWebResponse)
respuestaFTP.Close()
'Sitodohaidobien,devolvemosString.Empty
ReturnString.Empty
CatchexAsException
'Siseproducealgúnfallo,sedevolveráelmensajedelerror
Returnex.Message
EndTry
EndFunction
PublicFunctionexisteObjeto(ByValdirAsString)AsBoolean
DimpeticionFTPAsFtpWebRequest
'CreamosunapeticionFTPconladireccióndelobjetoquequeremossabersiexiste
peticionFTP=CType(WebRequest.Create(NewUri(dir)),FtpWebRequest)
'Fijamoselusuarioylacontraseñadelapetición
peticionFTP.Credentials=NewNetworkCredential(user,pass)
'Parasabersielobjetoexiste,solicitamoslafechadecreacióndelmismo
peticionFTP.Method=WebRequestMethods.Ftp.GetDateTimestamp
peticionFTP.UsePassive=False
Try
'Sielobjetoexiste,sedevolveráTrue
DimrespuestaFTPAsFtpWebResponse
respuestaFTP=CType(peticionFTP.GetResponse(),FtpWebResponse)
ReturnTrue
CatchexAsException
'Sielobjetonoexiste,seproduciráunerroryalentrarporelCatch
'sedevolveráfalso
ReturnFalse
EndTry
EndFunction
PublicFunctioncreaDirectorio(ByValdirAsString)AsString
DimpeticionFTPAsFtpWebRequest
'CreamosunapeticionFTPconladireccióndeldirectorioquequeremoscrear
peticionFTP=CType(WebRequest.Create(NewUri(dir)),FtpWebRequest)
'Fijamoselusuarioylacontraseñadelapetición
peticionFTP.Credentials=NewNetworkCredential(user,pass)
'Seleccionamoselcomandoquevamosautilizar:Crearundirectorio
peticionFTP.Method=WebRequestMethods.Ftp.MakeDirectory
Try
DimrespuestaAsFtpWebResponse
respuesta=CType(peticionFTP.GetResponse(),FtpWebResponse)
respuesta.Close()
'Sitodohaidobien,sedevolveráString.Empty
ReturnString.Empty
CatchexAsException
'Siseproducealgúnfallo,sedevolveráelmensajedelerror
Returnex.Message
EndTry
EndFunction
PublicFunctionsubirFichero(ByValficheroAsString,ByValdestinoAsString,_
ByValdirAsString)AsString
DiminfoFicheroAsNewFileInfo(fichero)
DimuriAsString
uri=destino
'Sinoexisteeldirectorio,locreamos
IfNotexisteObjeto(dir)Then
creaDirectorio(dir)
EndIf
DimpeticionFTPAsFtpWebRequest
'CreamosunapeticionFTPconladireccióndelficheroquevamosasubir
peticionFTP=CType(FtpWebRequest.Create(NewUri(destino)),FtpWebRequest)
'Fijamoselusuarioylacontraseñadelapetición
peticionFTP.Credentials=NewNetworkCredential(user,pass)
peticionFTP.KeepAlive=False
peticionFTP.UsePassive=False
'Seleccionamoselcomandoquevamosautilizar:Subirunfichero
peticionFTP.Method=WebRequestMethods.Ftp.UploadFile
'Especificamoseltipodetransferenciadedatos
peticionFTP.UseBinary=True
'Informamosalservidorsobreeltamaño
peticionFTP.ContentLength=infoFichero.Length
'Fijamosunbufferde2KB
DimlongitudBufferAsInteger
longitudBuffer=2048
DimlectorAsByte()=NewByte(2048){}
DimnumAsInteger
'Abrimoselficheroparasubirlo
DimfsAsFileStream
fs=infoFichero.OpenRead()
Try
DimescritorAsStream
escritor=peticionFTP.GetRequestStream()
'Leemos2KBdelficheroencadaiteración
num=fs.Read(lector,0,longitudBuffer)
While(num<>0)
'Escribimoselcontenidodelflujodelecturaenel
'flujodeescrituradelcomandoFTP
escritor.Write(lector,0,num)
num=fs.Read(lector,0,longitudBuffer)
EndWhile
escritor.Close()
fs.Close()
'Sitodohaidobien,sedevolveráString.Empty
ReturnString.Empty
CatchexAsException
'Siseproducealgúnfallo,sedevolveráelmensajedelerror
Returnex.Message
EndTry
EndFunction
EndClass
Aca les dejo un aporte, es una clase completa para manejo de archivos ftp, tube que eliminar los espacios por que se exedia del limite de caracteres, esta clase funciona perfectamente y se va a complementar con el manejo de archivos locales. Saludos!
EliminarHola Soy Jorge corri el código para encontrar un archivo pero no lo encuentra y lo mas curioso es que no me da ningún error. Me podriar ayudar? .Gracias
ResponderEliminar