Spanish guardar achivo.[SOLUCIONADO]

mvera

Active Member
Licensed User
Longtime User
hola estoy intentando guardar una foto y me sale el siguiente foto.

(ErrnoException) android.system.ErrnoException: open failed: EISDIR (Is a directory)

estoy haciendo esto :
alguien me puede orientar.
gracias.

Sub Camera1_PictureTaken (Data() As Byte)

Try
Dim filename As String =nombre_foto '&".jpg"

Dim dir As String


If File.ExternalWritable Then
dir =File.DirDefaultExternal
Else
dir =File.DirInternal
End If






cam2.SavePictureToFile(Data, dir, filename)
cam2.StartPreview 'restart preview

'send a broadcast intent to the media scanner to force it to scan the saved file.
Dim Phone As Phone
Dim i As Intent
i.Initialize("android.intent.action.MEDIA_SCANNER_SCAN_FILE", _
"file://" & File.Combine(dir, filename))
Phone.SendBroadcastIntent(i)
ToastMessageShow("Foto guardada." & CRLF & "File size: " & File.Size(dir, filename), True)




Catch

ToastMessageShow("Erroe en directorio :"&LastException,True)
Log("Erroe en directorio :"&LastException)


End Try

End Sub
 

rscheel

Well-Known Member
Licensed User
Longtime User
Cambia esta linea de codigo

B4X:
Sub Camera1_PictureTaken (Data() As Byte)

dir =File.DirDefaultExternal

End Sub

por esta

B4X:
dir= File.DirRootExternal

Saludos.
 

mvera

Active Member
Licensed User
Longtime User
lo puse asi Dim dir As String=File.DirRootExternal
pero el error cambio.

me cuesta ver el error favor orientarme.
gracias.


java.io.FileNotFoundException: /storage/emulated/0: open failed: EISDIR (Is a directory)
 

rscheel

Well-Known Member
Licensed User
Longtime User
Coloca este codigo en el botón cuando tomas la foto.
y la variable dir déjala como global.

B4X:
Sub btnTakePicture_Click
    dir = File.DirRootExternal & "/NombreCarpeta/" 'PREGUNTA SI EL DIRECTORIO ESTA
    Msgbox(MyPath,"")
    If File.Exists(MyPath, "") = False Then
        Msgbox("False","")
        File.MakeDir(File.DirRootExternal,"NombreCarpeta") 'SI NO ESTA CREA EL DIRECTORIO
        ToastMessageShow("Carpeta creada", True)
    Else
        Msgbox("True","")
    End If
End Sub

este codigo prueba lo solo y ve que pasa.
 

mvera

Active Member
Licensed User
Longtime User
muchas gracias rscheel voy a probar lo que me comentas
tengo la version 5.1 de android.

gracias.
 

rscheel

Well-Known Member
Licensed User
Longtime User
Entonces debería funcionar perfecto, yo utilizo la librería CameraEx y me anda perfecto.
 
Top