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); } } } 

6 Solutions collect form web for “Cómo obtener el nombre de archivo de la ruta del archivo en android”

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 
  • Android: BroadcastReceiver intención de detectar la foto de la cámara tomada?
  • MediaServer Remote Binder Objeto de cámara muerto - sólo en KITKAT
  • Enviar etiqueta de texto a Instagram utilizando mi aplicación para Android
  • ¿Cómo determino la orientación predeterminada de los marcos de previsualización de la cámara?
  • Proporciona una vista previa de la cámara en una textura con destino GL_TEXTURE_2D
  • getUserMedia Android Webview Ionic
  • Valor de la etiqueta de orientación EXIF ​​siempre 0 para la imagen tomada con la aplicación de cámara de retrato android
  • Parece que su dispositivo no es compatible con la cámara (o está bloqueado)
  • Cámara personalizada android
  • Android captura de vídeo de cámara lenta con CamcorderProfile
  • Android: procesamiento de imágenes en tiempo real
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.