2010-11-24 116 views
12

你好 我开发的android库的视频播放器。 我从gallry收到URI。当播放视频时我需要显示视频标题。 所以如果内容没有标题元数据。我需要消除视频文件名称。 如何获取视频内容文件名?如何从URI获取文件名

谢谢

+0

所以你想要显示的URI?或者用/分割并显示最后一部分? – Mikhail 2010-11-24 02:42:35

+0

我想显示最后一部分。如果我显示URI vALUE是/ external/video/media/3。但是3是id。不是文件名。 – byungkyu 2010-11-24 05:08:29

+0

看看这个其他职位: [http://stackoverflow.com/questions/1105593/get-file-name-from-uri-string-in-c-sharp][1] [ 1]:http://stackoverflow.com/questions/1105593/get-file-name-from-uri-string-in-c-sharp – 2011-12-13 14:21:21

回答

21

这里是从URL

获取文件的名称
Uri u = Uri.parse("www.google.com/images/image.jpg"); 

File f = new File("" + u); 

f.getName(); 
+0

不适用于我的情况,它只会在网址末尾提供名称,但在从Google驱动器内部文件或其他位置的文件中提取文档时,会在最后一次返回字符串正斜杠。 – cammando 2017-03-09 11:39:16

1
int actual_image_column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
String filename = cursor.getString(actual_image_column_index); 

这是例如对于图像的代码。你可以尝试同样的东西满足你的需求(视频)。

感谢&祝您好运:)

-2

我在这里给你一个示例代码,这将上传图片从画廊

要提取filename/Imagename,请执行下列操作

File f = new File(selectedPath); 
System.out.println("Image name is ::" + f.getName());//get name of file 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
super.onActivityResult(requestCode, resultCode, data); 
switch (requestCode) { 
case 1: 
if (resultCode == YourActivity.RESULT_OK) { 
Uri selectedImageUri = data.getData(); 
String selectedPath = getPath(selectedImageUri); 
File f = new File(selectedPath); 
System.out.println("Image name is ::" + f.getName());//get name of file 
} 
} 

希望这将有助于

4

由于没有答案真正解决问题,所以我把我的解决方案放在这里,希望它会有所帮助。

 String fileName; 
    if (uri.getScheme().equals("file")) { 
      fileName = uri.getLastPathSegment(); 
     } else { 
      Cursor cursor = null; 
      try { 
       cursor = getContentResolver().query(uri, new String[]{ 
         MediaStore.Images.ImageColumns.DISPLAY_NAME 
       }, null, null, null); 

       if (cursor != null && cursor.moveToFirst()) { 
        fileName = cursor.getString(cursor.getColumnIndex(MediaStore.Images.ImageColumns.DISPLAY_NAME)); 
        Log.d(TAG, "name is " + fileName); 
       } 
      } finally { 

       if (cursor != null) { 
        cursor.close(); 
       } 
      } 
     } 
1
try 
     { 
      String uriString = "http://somesite.com/video.mp4"; 
      URI uri = new URI(uriString); 

      URL videoUrl = uri.toURL(); 
      File tempFile = new File(videoUrl.getFile()); 
      String fileName = tempFile.getName(); 
     } 
     catch (Exception e) 
     { 

     } 
0

下面的代码对我的作品从画廊图像的情况下,它应该适用于任何文件类型。

String fileName = "default_file_name"; 
    Cursor returnCursor = 
      getContentResolver().query(YourFileUri, null, null, null, null); 
    try { 
     int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME); 
     returnCursor.moveToFirst(); 
     fileName = returnCursor.getString(nameIndex); 
     LOG.debug(TAG, "file name : " + fileName); 
    }catch (Exception e){ 
     LOG.error(TAG, "error: ", e); 
     //handle the failure cases here 
    } finally { 
     returnCursor.close(); 
    } 

Here你可以找到详细的解释和更多。