Ответ 1
Вот код для получения имени файла из url
Uri u = Uri.parse("www.google.com/images/image.jpg");
File f = new File("" + u);
f.getName();
Привет Я разрабатываю видеоплеер с галереей Android. Я получаю URI от gallry. и мне нужно отображать заголовок видео, когда воспроизводится видео. поэтому, если контент не имеет метаданных заголовка. Мне нужно disaplay имя видеофайла. Как получить имя файла видеоконтента?
Благодарю вас
Вот код для получения имени файла из url
Uri u = Uri.parse("www.google.com/images/image.jpg");
File f = new File("" + u);
f.getName();
Поскольку ни один из ответов действительно не решает вопросы, я предлагаю свое решение, надеюсь, что это будет полезно.
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();
}
}
}
int actual_image_column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
String filename = cursor.getString(actual_image_column_index);
Это пример для изображения. вы можете попробовать одно и то же для своих нужд (видео).
Спасибо и удачу:)
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();
}
Здесь вы можете найти подробное объяснение и многое другое.
Здесь я даю вам образец кода, который будет загружать изображение из галереи
Чтобы извлечь 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
}
}
Надеюсь, это поможет