Como obtener la ruta de un saveDialog o de un picturecBox

Iniciado por nolasco281, 25 Mayo 2015, 16:54 PM

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

nolasco281

Hola como están tengo la siguiente duda y es como obtengo la ruta completa donde guardo un archivo con un saveDialog

He estado probando lo siguiente pero solo me obtiene el nombre del archivo y no la ruta.

Código (vbnet) [Seleccionar]
'Obtengo el nombre de la foto
ruta = Path.GetFileName(saveFileDialog1.FileName)

'Igual obtengo nombre
ruta = IO.Path.GetFileName(saveFileDialog1.FileName)

MsgBox(ruta)


He notado que con el OpenDialog cuando uso el FileName si me trae toda la ruta.

Lo siquiente como obtengo la ruta completa de la imagen en un pictureBox

Código (vbnet) [Seleccionar]
ptbFotoPersonal.ImageLocation

Ya que necesito esa ruta para mandarla a un método por cualquier forma que se pueda ya sea por medio de saveDialog o por el pictureBox.

Saludos y gracias.
Lo que se puede imaginar... se puede programar.

nolasco281

Hola ya resolví el problema.

Obtuve la ruta de la siguiente manera.
También se puede de las formas que puse anteriormente el problema estaba en donde ponía la instrucción.

Código (vbnet) [Seleccionar]
ruta = saveFileDialog1.FileName

La instrucción debe ponerse después de que se presiona el botón de save y así guarda la ruta del saveDialog

Código (vbnet) [Seleccionar]
Case 1
Me.ptbFotoPersonal.Image.Save(fs, _
System.Drawing.Imaging.ImageFormat.Jpeg)
'Si captura la ruta completa del archivo
ruta = saveFileDialog1.FileName


No me guardaba la imagen porque la ponía después del FileName
Código (vbnet) [Seleccionar]

'Malo no captura la ruta si el nombre que se le da al archivo
saveFileDialog1.FileName = txtPrimerNombre.Text & " " & txtPrimerApellido.Text
ruta = saveFileDialog1.FileName


Saludos.
Lo que se puede imaginar... se puede programar.

Eleкtro

#2
La propiedad Filename se asigna cuando el diálogo devuelve una respuesta positiva de diálogo, es decir, cuando cierras el diálogo pulsando el botón OK, ni antes, ni despues.

Código (vbnet) [Seleccionar]
Using sfd As New SaveFileDialog

   With sfd
       .AddExtension = True
       .DefaultExt = "jpg"
       .FileName = "Image"
       .Filter = "Jpeg Image|*.jpg;*.jpeg"
       .InitialDirectory = My.Application.Info.DirectoryPath
       .OverwritePrompt = True
       .Title = "Specify the location where to save the image..."
       .ValidateNames = True
   End With

   If sfd.ShowDialog() = DialogResult.OK Then
       Me.ptbFotoPersonal.Image.Save(sfd.FileName, Imaging.ImageFormat.Jpeg)
   End If

End Using


También puedes suscribirte al evento FileOk, éste se dispara antes de que la ventana del diálogo se haya cerrado:
Código (vbnet) [Seleccionar]
Private WithEvents sfd As New SaveFileDialog With
{
   .AddExtension = True,
   .DefaultExt = "jpg",
   .FileName = "Image",
   .Filter = "Jpeg Image|*.jpg;*.jpeg",
   .InitialDirectory = My.Application.Info.DirectoryPath,
   .OverwritePrompt = True,
   .Title = "Specify the location where to save the image...",
   .ValidateNames = True
}

Private Sub Form1_Load() Handles MyBase.Load

   Me.sfd.ShowDialog()

End Sub

Private Sub Sfd_FileOk(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) _
Handles sfd.FileOk

   Me.PictureBox1.Image.Save(DirectCast(sender, SaveFileDialog).FileName, Imaging.ImageFormat.Jpeg)

End Sub


Saludos!








nolasco281

Hola gracias por responder

Es correcto solo que estaba confundiendo

Esta instruccion
Código (vbnet) [Seleccionar]
.FileName = "Image"

Con el de este FileName
Código (vbnet) [Seleccionar]
Me.ptbFotoPersonal.Image.Save(sfd.FileName, Imaging.ImageFormat.Jpeg)

Gracias he estado probando veo que por medio del evento FileOk se hace mas practico para mis fines.

Gracias y saludos.
Lo que se puede imaginar... se puede programar.