Crear archivo en un FTP

Iniciado por BrokerJoker, 8 Marzo 2012, 02:55 AM

0 Miembros y 1 Visitante están viendo este tema.

BrokerJoker

Como puedo crear un archivo en FTP desde vb.net?

Encontre algo para subir archivos pero no sirve si ya no hay un archivo creado en el ftp

My.Computer.Network.Crate("c:\Directorio" , "la pagina ftp/" , "user", "pass")
     
Alguien me podria ayudar porfavor T_T.
Solo quero poder crear un archivo de texto en el ftp pero desde un proyecto creado en vb.net

seba123neo

Hola, proba esto:

Código (vbnet) [Seleccionar]
Imports System.Net
Imports System.IO
Imports System.Text

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim uri As New Uri("ftp://ftp.servidor.com/carpeta/hola.txt")
        Dim request As FtpWebRequest = DirectCast(WebRequest.Create(uri), FtpWebRequest)

        request.Method = WebRequestMethods.Ftp.UploadFile
        request.Proxy = Nothing
        request.UseBinary = True
        request.UsePassive = False
        request.Credentials = New NetworkCredential("usuario", "password")

        Dim vCadena As String = "Esto es una prueba de FTP"

        Dim encoding As New System.Text.UTF8Encoding()

        Dim fileContents() As Byte = encoding.GetBytes(vCadena)
        request.ContentLength = fileContents.Length

        Dim requestStream As Stream = request.GetRequestStream()
        requestStream.Write(fileContents, 0, fileContents.Length)
        requestStream.Close()

        Dim response As FtpWebResponse = DirectCast(request.GetResponse(), FtpWebResponse)
        response.Close()
    End Sub
End Class


saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

BrokerJoker

Cita de: seba123neo en  8 Marzo 2012, 03:51 AM
Hola, proba esto:

Código (vbnet) [Seleccionar]
Imports System.Net
Imports System.IO
Imports System.Text

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim uri As New Uri("ftp://ftp.servidor.com/carpeta/hola.txt")
        Dim request As FtpWebRequest = DirectCast(WebRequest.Create(uri), FtpWebRequest)

        request.Method = WebRequestMethods.Ftp.UploadFile
        request.Proxy = Nothing
        request.UseBinary = True
        request.UsePassive = False
        request.Credentials = New NetworkCredential("usuario", "password")

        Dim vCadena As String = "Esto es una prueba de FTP"

        Dim encoding As New System.Text.UTF8Encoding()

        Dim fileContents() As Byte = encoding.GetBytes(vCadena)
        request.ContentLength = fileContents.Length

        Dim requestStream As Stream = request.GetRequestStream()
        requestStream.Write(fileContents, 0, fileContents.Length)
        requestStream.Close()

        Dim response As FtpWebResponse = DirectCast(request.GetResponse(), FtpWebResponse)
        response.Close()
    End Sub
End Class


saludos.

Muchas gracias , es justo lo que necesitaba!

BrokerJoker

M... xD otra vez a preguntar T_T

Como podria hacer para comprobar si el archivo existe ,  y si existe solo escribir en el ?
Alguna pista plis

seba123neo

busca en internet, ya todo eso lo podes hacer con la clase FtpWebRequest que te pase en el codigo, por ejemplo:

How to check if file exists on FTP before FtpWebRequest

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Senior++

Cita de: seba123neo en  8 Marzo 2012, 03:51 AM
Hola, proba esto:

Código (vbnet) [Seleccionar]
Imports System.Net
Imports System.IO
Imports System.Text

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim uri As New Uri("ftp://ftp.servidor.com/carpeta/hola.txt")
        Dim request As FtpWebRequest = DirectCast(WebRequest.Create(uri), FtpWebRequest)

        request.Method = WebRequestMethods.Ftp.UploadFile
        request.Proxy = Nothing
        request.UseBinary = True
        request.UsePassive = False
        request.Credentials = New NetworkCredential("usuario", "password")

        Dim vCadena As String = "Esto es una prueba de FTP"

        Dim encoding As New System.Text.UTF8Encoding()

        Dim fileContents() As Byte = encoding.GetBytes(vCadena)
        request.ContentLength = fileContents.Length

        Dim requestStream As Stream = request.GetRequestStream()
        requestStream.Write(fileContents, 0, fileContents.Length)
        requestStream.Close()

        Dim response As FtpWebResponse = DirectCast(request.GetResponse(), FtpWebResponse)
        response.Close()
    End Sub
End Class


saludos.


Tengo 1 pequeña duda con el código ese...

Lo que hace ese código es buscar en el FTP si existe un documento texto con el nombre hola.txt o crea el documento de texto hola.txt? :huh:

Saludos
Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata

seba123neo

lo crea, crea un Stream y lo manda, para chequear que existe miren la clase FtpWebRequest , ahi tiene todo eso para ver si existe, borrar archivos..etc.

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson