Cómo obtener el nombre de archivo de la ruta del archivo en android

Quiero obtener el nombre de archivo de la ruta del archivo sdcard. Por ejemplo: /storage/sdcard0/DCIM/Camera/1414240995236.jpg I want get 1414240995236.jpg He escrito el código para buscar el mismo pero no está trabajando. Por favor ayuda.
A continuación se muestra mi código:

 @Override protected void onActivityResult( int requestCode, int resultCode, Intent data) { if ( requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) { if ( resultCode == RESULT_OK) { /*********** Load Captured Image And Data Start ****************/ String imageId = convertImageUriToFile( imageUri,CameraActivity); // Create and excecute AsyncTask to load capture image new LoadImagesFromSDCard().execute(""+imageId); /*********** Load Captured Image And Data End ****************/ } else if ( resultCode == RESULT_CANCELED) { Toast.makeText(this, " Picture was not taken ", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this, " Picture was not taken ", Toast.LENGTH_SHORT).show(); } } } /************ Convert Image Uri path to physical path **************/ public static String convertImageUriToFile ( Uri imageUri, Activity activity ) { Cursor cursor = null; int imageID = 0; try { /*********** Which columns values want to get *******/ String [] proj={ MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID, MediaStore.Images.Thumbnails._ID, MediaStore.Images.ImageColumns.ORIENTATION }; cursor = activity.managedQuery( imageUri, // Get data for specific image URI proj, // Which columns to return null, // WHERE clause; which rows to return (all rows) null, // WHERE clause selection arguments (none) null // Order-by clause (ascending by name) ); // Get Query Data int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID); int columnIndexThumb = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID); int file_ColumnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); //int orientation_ColumnIndex = cursor. // getColumnIndexOrThrow(MediaStore.Images.ImageColumns.ORIENTATION); int size = cursor.getCount(); /******* If size is 0, there are no images on the SD Card. *****/ if (size == 0) { imageDetails.setText("No Image"); } else { int thumbID = 0; if (cursor.moveToFirst()) { /**************** Captured image details ************/ /***** Used to show image on view in LoadImagesFromSDCard class ******/ imageID = cursor.getInt(columnIndex); thumbID = cursor.getInt(columnIndexThumb); String Path = cursor.getString(file_ColumnIndex); //String orientation = cursor.getString(orientation_ColumnIndex); String CapturedImageDetails = " CapturedImageDetails : \n\n" +" ImageID :"+imageID+"\n" +" ThumbID :"+thumbID+"\n" +" Path :"+Path+"\n"; full_path_name=Path; //this is my path //Path :/storage/sdcard0/DCIM/Camera/1414240995236.jpg i want get 1414240995236.jpg // Show Captured Image detail on activity imageDetails.setText(Path); } } } finally { if (cursor != null) { cursor.close(); } } // Return Captured Image ImageID ( By this ImageID Image will load from sdcard ) return ""+imageID; } /** * Async task for loading the images from the SD card. * * @author Android Example * */ // Class with extends AsyncTask class public class LoadImagesFromSDCard extends AsyncTask<String, Void, Void> { private ProgressDialog Dialog = new ProgressDialog(CameraPhotoCapture.this); Bitmap mBitmap; protected void onPreExecute() { /****** NOTE: You can call UI Element here. *****/ // Progress Dialog Dialog.setMessage(" Loading image from Sdcard.."); Dialog.show(); } // Call after onPreExecute method protected Void doInBackground(String... urls) { Bitmap bitmap = null; Bitmap newBitmap = null; Uri uri = null; try { /** Uri.withAppendedPath Method Description * Parameters * baseUri Uri to append path segment to * pathSegment encoded path segment to append * Returns * a new Uri based on baseUri with the given segment appended to the path */ uri = Uri.withAppendedPath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "" + urls[0]); /************** Decode an input stream into a bitmap. *********/ bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri)); if (bitmap != null) { /********* Creates a new bitmap, scaled from an existing bitmap. ***********/ newBitmap = Bitmap.createScaledBitmap(bitmap, 170, 170, true); bitmap.recycle(); if (newBitmap != null) { mBitmap = newBitmap; } } } catch (IOException e) { // Error fetching image, try to recover /********* Cancel execution of this task. **********/ cancel(true); } return null; } protected void onPostExecute(Void unused) { // NOTE: You can call UI Element here. // Close progress dialog Dialog.dismiss(); if(mBitmap != null) { // Set Image to ImageView showImg.setImageBitmap(mBitmap); } } } 

Creo que puede utilizar substring methode para obtener el nombre del archivo de la cadena de ruta de acceso.

  String path=":/storage/sdcard0/DCIM/Camera/1414240995236.jpg";//it contain your path of image..im using a temp string.. String filename=path.substring(path.lastIndexOf("/")+1); 

La solución más fácil es usar Uri.getLastPathSegment () :

 String filename = uri.getLastPathSegment(); 

Manera simple y fácil de conseguir el nombre de archivo

 File file = new File("/storage/sdcard0/DCIM/Camera/1414240995236.jpg"); String strFileName = file.getName(); 

Después de agregar este código e imprimir strFileName obtendrá strFileName = 1414240995236.jpg

Hilo viejo, pero pensé que iba a actualizar;

  File theFile = ....... String theName = theFile.getName(); // Get the file name String thePath = theFile.getAbsolutePath(); // Get the full 

Aquí se puede encontrar más información; Clase de archivo de Android

FilenameUtils al rescate:

 String filename = FilenameUtils.getName("/storage/sdcard0/DCIM/Camera/1414240995236.jpg"); 

Puede utilizar la biblioteca IO común que puede obtener el nombre base de su archivo y la extensión.

  String fileUrl=":/storage/sdcard0/DCIM/Camera/1414240995236.jpg"; String fileName=FilenameUtils.getBaseName(fileUrl); String fileExtention=FilenameUtils.getExtension(fileUrl); //this will return filename:1414240995236 and fileExtention:jpg 
  • escala de previsualización de la cámara para adaptarse a la mitad de la pantalla
  • Android dibujar en vista previa de la cámara
  • Cómo construir la aplicación de la cámara por separado de AOSP?
  • getUserMedia Android Webview Ionic
  • Actividad muerta / onCreate llamada después de tomar la imagen a través de la intención
  • Android: captura la foto
  • ¿Cómo guardar la imagen junto con la vista de la superficie en android?
  • Enviar etiqueta de texto a Instagram utilizando mi aplicación para Android
  • Abra la cámara usando la intención
  • SurfaceView vs TextureView para la cámara?
  • Intención de la cámara Android Guardar imagen Paisaje cuando se toma Retrato
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.