Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: nolasco281 en 25 Mayo 2015, 16:54 pm



Título: Como obtener la ruta de un saveDialog o de un picturecBox
Publicado por: nolasco281 en 25 Mayo 2015, 16:54 pm
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
  1. 'Obtengo el nombre de la foto
  2. ruta = Path.GetFileName(saveFileDialog1.FileName)
  3.  
  4. 'Igual obtengo nombre
  5. ruta = IO.Path.GetFileName(saveFileDialog1.FileName)
  6.  
  7. 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
  1. 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.


Título: Re: Como obtener la ruta de un saveDialog o de un picturecBox
Publicado por: nolasco281 en 25 Mayo 2015, 17:45 pm
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
  1. 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
  1. Case 1
  2. Me.ptbFotoPersonal.Image.Save(fs, _
  3. System.Drawing.Imaging.ImageFormat.Jpeg)
  4. 'Si captura la ruta completa del archivo
  5. ruta = saveFileDialog1.FileName

No me guardaba la imagen porque la ponía después del FileName
Código
  1.  
  2. 'Malo no captura la ruta si el nombre que se le da al archivo
  3. saveFileDialog1.FileName = txtPrimerNombre.Text & " " & txtPrimerApellido.Text
  4. ruta = saveFileDialog1.FileName
  5.  

Saludos.


Título: Re: Como obtener la ruta de un saveDialog o de un picturecBox
Publicado por: Eleкtro en 25 Mayo 2015, 18:16 pm
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
  1. Using sfd As New SaveFileDialog
  2.  
  3.    With sfd
  4.        .AddExtension = True
  5.        .DefaultExt = "jpg"
  6.        .FileName = "Image"
  7.        .Filter = "Jpeg Image|*.jpg;*.jpeg"
  8.        .InitialDirectory = My.Application.Info.DirectoryPath
  9.        .OverwritePrompt = True
  10.        .Title = "Specify the location where to save the image..."
  11.        .ValidateNames = True
  12.    End With
  13.  
  14.    If sfd.ShowDialog() = DialogResult.OK Then
  15.        Me.ptbFotoPersonal.Image.Save(sfd.FileName, Imaging.ImageFormat.Jpeg)
  16.    End If
  17.  
  18. 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
  1. Private WithEvents sfd As New SaveFileDialog With
  2. {
  3.    .AddExtension = True,
  4.    .DefaultExt = "jpg",
  5.    .FileName = "Image",
  6.    .Filter = "Jpeg Image|*.jpg;*.jpeg",
  7.    .InitialDirectory = My.Application.Info.DirectoryPath,
  8.    .OverwritePrompt = True,
  9.    .Title = "Specify the location where to save the image...",
  10.    .ValidateNames = True
  11. }
  12.  
  13. Private Sub Form1_Load() Handles MyBase.Load
  14.  
  15.    Me.sfd.ShowDialog()
  16.  
  17. End Sub
  18.  
  19. Private Sub Sfd_FileOk(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) _
  20. Handles sfd.FileOk
  21.  
  22.    Me.PictureBox1.Image.Save(DirectCast(sender, SaveFileDialog).FileName, Imaging.ImageFormat.Jpeg)
  23.  
  24. End Sub

Saludos!


Título: Re: Como obtener la ruta de un saveDialog o de un picturecBox
Publicado por: nolasco281 en 25 Mayo 2015, 20:16 pm
Hola gracias por responder

Es correcto solo que estaba confundiendo

Esta instruccion
Código
  1. .FileName = "Image"

Con el de este FileName
Código
  1. 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.