none
[AYUDA] Con SaveFileDialog1 guardar ruta especifica VB 10 RRS feed

  • Pregunta

  • Hola,

    tengo un problema con mi linea de código.. cuando hago sobre un boton "DESCARGA" se abre el SaveFileDialog1 para preguntarme el destino de la descarga.. pero yo necesito especificar la ruta desde el código, aqui mi código:

    If Me.carga.Text <> "" Then
                        Me.SaveFileDialog1.FileName = Me.GetFileNameFromURL(Me.carga.Text)
                        Me.SaveFileDialog1.Filter = "Todos los archivos (*.*)|*.*"
                        Me.SaveFileDialog1.FileName = artista & " - " & cancion & ".mp3"
                        If Me.SaveFileDialog1.ShowDialog() <> Windows.Forms.DialogResult.Cancel Then
                            Me.PictureBox4.Enabled = False
                            Me.Label8.Text = "Descargando " & artista & " - " & cancion & ".mp3"
                            Me.Label8.Visible = True
                            Me.BackgroundWorker1.RunWorkerAsync()
                        Else
                            Exit Sub
                        End If
                    Else
                        Exit Sub
                    End If
    
                Catch ex As Exception
                    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
                End Try
    si alguien me pudiera ayudar, le agredeceria mucho..


    martes, 8 de abril de 2014 22:00

Todas las respuestas

  • Hola creo que lo que quiere hacer es nada mas que se te abra el dialog en una ruta que tu especifiques, en caso de ser así solo tienes que hacer esto.

    SaveFileDialog1.InitialDirectory = "Ruta/donde va/a/iniciar/el dialog";

    espero te sirva.

    Saludos !!

    martes, 8 de abril de 2014 23:11
  • Que tal TrackGamer

    Para poder especificar una ruta en el control SaveFileDialog podrías hacer esto

    SaveFileDialog1.InitialDirectory = "c:\Directorio\" 'Especificar ruta
    SaveFileDialog1.FileName = "Archivo.txt" 'Especificar nombre y extensión del fichero
    SaveFileDialog1.ShowDialog()

    De todos modos no entiendo bien que es lo que quisieras conseguir.

    Si seguís con inquietudes no dudes en consultar

    Saludos

    martes, 8 de abril de 2014 23:20
  • Que tal TrackGamer

    Para poder especificar una ruta en el control SaveFileDialog podrías hacer esto

    SaveFileDialog1.InitialDirectory = "c:\Directorio\" 'Especificar ruta
    SaveFileDialog1.FileName = "Archivo.txt" 'Especificar nombre y extensión del fichero
    SaveFileDialog1.ShowDialog()

    De todos modos no entiendo bien que es lo que quisieras conseguir.

    Si seguís con inquietudes no dudes en consultar

    Saludos

    Gracias amigo, pues lo que necesito es especificar la ruta, pero sin que se abrá el savefiledialog. Me podrías ayudar?
    Gracias :)
    miércoles, 9 de abril de 2014 3:36
  • Hola, si no he entendido mal, lo que quieres es poner la ruta a mano y que no se abra el SaveFileDialog. 

    Sustituye: 

    Me.SaveFileDialog1.FileName = Me.GetFileNameFromURL(Me.carga.Text)
    Me.SaveFileDialog1.Filter = "Todos los archivos (*.*)|*.*"
    Me.SaveFileDialog1.FileName = artista & " - " & cancion & ".mp3"
    If Me.SaveFileDialog1.ShowDialog() <> Windows.Forms.DialogResult.Cancel Then
    	Me.PictureBox4.Enabled = False
    	Me.Label8.Text = "Descargando " & artista & " - " & cancion & ".mp3"
    	Me.Label8.Visible = True
    	Me.BackgroundWorker1.RunWorkerAsync()
    Else
    	Exit Sub
    End If

    Por:

    Me.PictureBox4.Enabled = False
    	Me.Label8.Text = "Descargando " & artista & " - " & cancion & ".mp3"
    	Me.Label8.Visible = True
    	Me.BackgroundWorker1.RunWorkerAsync()

    Y en el metodo asincrono desde donde haces la operación, pon la ruta del fichero a mano.

    Saludos.


    Víctor del Valle - http://www.vrdelvalle.net

    miércoles, 9 de abril de 2014 7:47
  • Hola, si no he entendido mal, lo que quieres es poner la ruta a mano y que no se abra el SaveFileDialog. 

    Sustituye: 

    Me.SaveFileDialog1.FileName = Me.GetFileNameFromURL(Me.carga.Text)
    Me.SaveFileDialog1.Filter = "Todos los archivos (*.*)|*.*"
    Me.SaveFileDialog1.FileName = artista & " - " & cancion & ".mp3"
    If Me.SaveFileDialog1.ShowDialog() <> Windows.Forms.DialogResult.Cancel Then
    	Me.PictureBox4.Enabled = False
    	Me.Label8.Text = "Descargando " & artista & " - " & cancion & ".mp3"
    	Me.Label8.Visible = True
    	Me.BackgroundWorker1.RunWorkerAsync()
    Else
    	Exit Sub
    End If

    Por:

    Me.PictureBox4.Enabled = False
    	Me.Label8.Text = "Descargando " & artista & " - " & cancion & ".mp3"
    	Me.Label8.Visible = True
    	Me.BackgroundWorker1.RunWorkerAsync()

    Y en el metodo asincrono desde donde haces la operación, pon la ruta del fichero a mano.

    Saludos.


    Víctor del Valle - http://www.vrdelvalle.net

    amigo disculpa la molestia, pero no muy entiendo como deberia agregar la ruta a mano, me ayudas? este es el codigo de mi backgroundworker1. 
      Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
            Dim FS As FileStream
            Dim wRemote As WebRequest
    
            Dim iBytesRead As Integer
            Dim bBuffer As Byte()
            ReDim bBuffer(256)
            Dim avansa As Integer
            Dim dato As Double
            Try
                FS = New FileStream(Me.SaveFileDialog1.FileName, FileMode.Create, FileAccess.Write)
    
                wRemote = WebRequest.Create(Me.carga.Text)
                Dim myWebResponse As WebResponse = wRemote.GetResponse
                Dim sChunks As Stream = myWebResponse.GetResponseStream
                Do
                    iBytesRead = sChunks.Read(bBuffer, 0, 256)
                    FS.Write(bBuffer, 0, iBytesRead)
                    iTotalBytesRead += iBytesRead
                    total = myWebResponse.ContentLength
                    If myWebResponse.ContentLength < iTotalBytesRead Then
                        Me.BackgroundWorker1.ReportProgress(100)
                    Else
                        dato = (iTotalBytesRead * 100) / total
                        avansa = Convert.ToInt32(dato)
                        Me.BackgroundWorker1.ReportProgress(avansa)
                    End If
                Loop While Not iBytesRead = 0
                sChunks.Close()
                FS.Close()
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        End Sub
    es aqui donde deberia de agregar la ruta?, me especificas donde y como, por favor :)
    jueves, 10 de abril de 2014 2:18
  • Hola, tienes que cambiar Me.SaveFileDialog1.FileName por la ruta que quieras.

    Por ejemplo:

    FS = New FileStream("C:\rutasTemp\ficheroTemp.mp3", FileMode.Create, FileAccess.Write)

    Espero que te sirva de ayuda.

    Saludos.


    Víctor del Valle - http://www.vrdelvalle.net

    jueves, 10 de abril de 2014 7:10