相关疑难解决方法(0)

从图库或相机中选取的图像中获取文件扩展名,作为字符串

我想得到从图库加载或从相机中拾取的图像的图像扩展名(例如"jpg","png","bmp"ecc.).

我已经使用此表单中的方法从库中加载图像

    private static final int SELECT_PICTURE_ACTIVITY_REQUEST_CODE = 0;
....
private void selectPicture() {
    Intent intent = new Intent(Intent.ACTION_PICK);
    intent.setType("image/*");
    startActivityForResult(intent, SELECT_PICTURE_ACTIVITY_REQUEST_CODE);
}
....
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent);

    switch (requestCode) {
        case SELECT_PICTURE_ACTIVITY_REQUEST_CODE:
            if (resultCode == RESULT_OK) {
                Uri selectedImage = imageReturnedIntent.getData();
                String[] filePathColumn = {MediaStore.Images.Media.DATA};
                Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
                if (cursor.moveToFirst()) {
                    int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                    String filePath = cursor.getString(columnIndex);
                    Bitmap bitmap = BitmapFactory.decodeFile(filePath);
                    .........
                } …
Run Code Online (Sandbox Code Playgroud)

android android-gallery android-camera

31
推荐指数
7
解决办法
4万
查看次数

在最后一次出现的字符上拆分字符串

我基本上试图在最后一个时间段溢出一个字符串来捕获文件扩展名.但有时文件没有扩展,所以我期待.但问题是有些文件名在结束前有句号,所以...

/mnt/sdcard/OG Ron C, Chopstars & Drake - Choppin Ain't The Same-2013-MIXFIEND/02 Drake - Connect (Feat. Fat Pat) (Chopped Not Slopped).mp3
Run Code Online (Sandbox Code Playgroud)

所以当这个字符串出现时,它会在"02 Drake - Connect(Feat.")上剁它.

这就是我一直在使用的......

String filePath = intent.getStringExtra(ARG_FILE_PATH);
String fileType = filePath.substring(filePath.length() - 4);
String FileExt = null;
try {
    StringTokenizer tokens = new StringTokenizer(filePath, ".");
    String first = tokens.nextToken();
    FileExt = tokens.nextToken();
}
catch(NoSuchElementException e) {
    customToast("the scene you chose, has no extension :(");
}
System.out.println("EXT " + FileExt);
File fileToUpload = new File(filePath);
Run Code Online (Sandbox Code Playgroud)

如何在文件扩展名处拆分字符串,但是当文件没有扩展名时,也能够处理和警告.

java regex string android

29
推荐指数
3
解决办法
5万
查看次数

Android:获取任何文件的文件名和扩展名

我遇到的问题是,我无法从搭载 Android 9 的智能手机上选择的文件中提取文件扩展名。该问题不会出现在搭载 Android 8 或更低版本的设备上。

当用户选择任何类型的文件时,onActivityResult 被调用。在这个方法中,我从 FileUtils 类调用 getPath,所以我可以提取文件扩展名。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Uri uri = new Uri.Builder().build();
    if (resultCode == RESULT_OK) {
        switch (requestCode) {
            case PICKFILE_REQUEST_CODE: {
                String path = new File(data.getData().getPath()).getAbsolutePath();

                if (path != null) {
                    uri = data.getData();
                    path = FileUtils.getPath(getApplicationContext().getContentResolver(), uri);
                    name = path.substring(path.lastIndexOf("."));
                    extension = path.substring(path.lastIndexOf(".") + 1);
                }
                break;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

FileUtils类(来自此 repo)的getPath()通过 URI 评估文件是哪种文件,但对这种情况负责的是以下部分:

public static String …
Run Code Online (Sandbox Code Playgroud)

android android-emulator

-2
推荐指数
1
解决办法
3095
查看次数