你好 我开发的android库的视频播放器。 我从gallry收到URI。当播放视频时我需要显示视频标题。 所以如果内容没有标题元数据。我需要消除视频文件名称。 如何获取视频内容文件名?如何从URI获取文件名
谢谢
你好 我开发的android库的视频播放器。 我从gallry收到URI。当播放视频时我需要显示视频标题。 所以如果内容没有标题元数据。我需要消除视频文件名称。 如何获取视频内容文件名?如何从URI获取文件名
谢谢
这里是从URL
获取文件的名称Uri u = Uri.parse("www.google.com/images/image.jpg");
File f = new File("" + u);
f.getName();
不适用于我的情况,它只会在网址末尾提供名称,但在从Google驱动器内部文件或其他位置的文件中提取文档时,会在最后一次返回字符串正斜杠。 – cammando 2017-03-09 11:39:16
int actual_image_column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
String filename = cursor.getString(actual_image_column_index);
这是例如对于图像的代码。你可以尝试同样的东西满足你的需求(视频)。
感谢&祝您好运:)
我在这里给你一个示例代码,这将上传图片从画廊
要提取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
}
}
希望这将有助于
由于没有答案真正解决问题,所以我把我的解决方案放在这里,希望它会有所帮助。
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();
}
}
}
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)
{
}
下面的代码对我的作品从画廊图像的情况下,它应该适用于任何文件类型。
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你可以找到详细的解释和更多。
所以你想要显示的URI?或者用/分割并显示最后一部分? – Mikhail 2010-11-24 02:42:35
我想显示最后一部分。如果我显示URI vALUE是/ external/video/media/3。但是3是id。不是文件名。 – byungkyu 2010-11-24 05:08:29
看看这个其他职位: [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