导航菜单

页面标题

页面副标题

六分钟步行测试管理软件 v1.1.0.2112120029 - FileUtils.java 源代码

正在查看: 六分钟步行测试管理软件 v1.1.0.2112120029 应用的 FileUtils.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package cn.neoprint.padmonitor.utils;

import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.os.StatFs;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.util.Log;
import androidx.core.content.FileProvider;
import com.sayeasytech.base.log.KLog;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;
import java.util.Locale;

public class FileUtils {
    public static final String DATA_TYPE_ALL = "*/*";
    public static final String DATA_TYPE_APK = "application/vnd.android.package-archive";
    public static final String DATA_TYPE_AUDIO = "audio/*";
    public static final String DATA_TYPE_CHM = "application/x-chm";
    public static final String DATA_TYPE_EXCEL = "application/vnd.ms-excel";
    public static final String DATA_TYPE_HTML = "text/html";
    public static final String DATA_TYPE_IMAGE = "image/*";
    public static final String DATA_TYPE_PDF = "application/pdf";
    public static final String DATA_TYPE_PPT = "application/vnd.ms-powerpoint";
    public static final String DATA_TYPE_TXT = "text/plain";
    public static final String DATA_TYPE_VIDEO = "video/*";
    public static final String DATA_TYPE_WORD = "application/msword";

    public static void delete(File file) {
        if (file.isFile()) {
            file.delete();
            return;
        }
        if (file.isDirectory()) {
            File[] listFiles = file.listFiles();
            if (listFiles == null || listFiles.length == 0) {
                file.delete();
                return;
            }
            for (File file2 : listFiles) {
                delete(file2);
            }
            file.delete();
        }
    }

    public static boolean deleteFile(String str) {
        File file = new File(str);
        if (file.isFile()) {
            return file.delete();
        }
        return false;
    }

    public static boolean deleteFilesByPath(String str, String str2) {
        File[] listFiles = new File(str).listFiles();
        if (listFiles == null) {
            return true;
        }
        boolean z = false;
        for (int i = 0; i < listFiles.length; i++) {
            if (listFiles[i].getName().startsWith(str2)) {
                System.out.println("将被删除的文件名:" + listFiles[i].getName());
                if (deleteFile(str + listFiles[i].getName())) {
                    System.out.println("文件" + listFiles[i].getName() + "删除成功");
                    z = true;
                } else {
                    System.out.println("文件" + listFiles[i].getName() + "删除失败");
                }
            }
        }
        return z;
    }

    public static File getAlbumStorageDir(String str) {
        File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), str);
        if (!file.mkdirs()) {
            Log.e("SignaturePad", "Directory not created");
        }
        return file;
    }

    public static void saveBitmapToJPG(Bitmap bitmap, File file) throws IOException {
        Bitmap createBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(createBitmap);
        canvas.drawColor(-1);
        canvas.drawBitmap(bitmap, 0.0f, 0.0f, (Paint) null);
        FileOutputStream fileOutputStream = new FileOutputStream(file);
        createBitmap.compress(Bitmap.CompressFormat.JPEG, 80, fileOutputStream);
        fileOutputStream.close();
    }

    public static boolean addJpgSignatureToGallery(Context context, Bitmap bitmap, String str) {
        return !TextUtils.isEmpty(addJpgToGallery(context, "SignaturePad", bitmap, str));
    }

    public static String addJpgToGallery(Context context, String str, Bitmap bitmap, String str2) {
        try {
            File file = new File(getAlbumStorageDir(str), str2);
            saveBitmapToJPG(bitmap, file);
            scanMediaFile(context, file);
            return file.getPath();
        } catch (IOException e) {
            e.printStackTrace();
            return "";
        }
    }

    public static void scanMediaFile(Context context, File file) {
        Intent intent = new Intent("android.intent.action.MEDIA_SCANNER_SCAN_FILE");
        intent.setData(Uri.fromFile(file));
        context.sendBroadcast(intent);
    }

    public static boolean addSvgSignatureToGallery(Context context, String str, String str2) {
        try {
            File file = new File(getAlbumStorageDir("SignaturePad"), str2);
            FileOutputStream fileOutputStream = new FileOutputStream(file);
            OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);
            outputStreamWriter.write(str);
            outputStreamWriter.close();
            fileOutputStream.flush();
            fileOutputStream.close();
            scanMediaFile(context, file);
            return true;
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }
    }

    public static boolean isFileExist(String str) {
        return new File(str).exists();
    }

    public static Uri getImageContentUri(Context context, File file) {
        String absolutePath = file.getAbsolutePath();
        Cursor query = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[]{"_id"}, "_data=? ", new String[]{absolutePath}, null);
        if (query != null && query.moveToFirst()) {
            return Uri.withAppendedPath(Uri.parse("content://media/external/images/media"), "" + query.getInt(query.getColumnIndex("_id")));
        }
        if (!file.exists()) {
            return null;
        }
        ContentValues contentValues = new ContentValues();
        contentValues.put("_data", absolutePath);
        return context.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
    }

    public static String getPath(Context context, Uri uri) {
        Cursor query = context.getContentResolver().query(uri, null, null, null, null);
        String str = null;
        if (query == null) {
            return null;
        }
        if (query.moveToFirst()) {
            try {
                str = query.getString(query.getColumnIndex("_data"));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        query.close();
        return str;
    }

    public static boolean writeFile(InputStream inputStream, OutputStream outputStream) {
        byte[] bArr = new byte[8192];
        while (true) {
            try {
                int read = inputStream.read(bArr);
                if (read != -1) {
                    outputStream.write(bArr, 0, read);
                    outputStream.flush();
                } else {
                    outputStream.close();
                    inputStream.close();
                    return true;
                }
            } catch (IOException e) {
                e.printStackTrace();
                return false;
            }
        }
    }

    public static void contentToFile(String str, String str2, String str3) {
        try {
            File file = new File(str2);
            if (!file.exists()) {
                file.mkdirs();
            }
            File file2 = new File(str2 + "/", str3);
            if (!file2.exists()) {
                file2.createNewFile();
            }
            OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream(file2), StandardCharsets.UTF_8);
            outputStreamWriter.write(str);
            outputStreamWriter.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void createFile(String str, byte[] bArr) {
        try {
            FileOutputStream fileOutputStream = new FileOutputStream(str);
            fileOutputStream.write(bArr);
            fileOutputStream.flush();
            fileOutputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static Uri getUri(Context context, Intent intent, File file) {
        if (Build.VERSION.SDK_INT >= 24) {
            Uri uriForFile = FileProvider.getUriForFile(context, context.getPackageName() + ".imagePicker.provider", file);
            intent.addFlags(1);
            return uriForFile;
        }
        return Uri.fromFile(file);
    }

    public static Intent generateVideoAudioIntent(Context context, String str, String str2) {
        Intent intent = new Intent("android.intent.action.VIEW");
        intent.addFlags(67108864);
        intent.putExtra("oneshot", 0);
        intent.putExtra("configchange", 0);
        intent.setDataAndType(getUri(context, intent, new File(str)), str2);
        return intent;
    }

    public static Intent generateHtmlFileIntent(String str) {
        Uri build = Uri.parse(str).buildUpon().encodedAuthority("com.android.htmlfileprovider").scheme("content").encodedPath(str).build();
        Intent intent = new Intent("android.intent.action.VIEW");
        intent.setDataAndType(build, DATA_TYPE_HTML);
        return intent;
    }

    public static Intent generateCommonIntent(Context context, String str, String str2) {
        Intent intent = new Intent();
        intent.addFlags(268435456);
        intent.setAction("android.intent.action.VIEW");
        intent.setDataAndType(getUri(context, intent, new File(str)), str2);
        return intent;
    }

    public static boolean checkFreeSpace() {
        long j = 1363148800;
        long sDFreeSpace = getSDFreeSpace();
        KLog.i("磁盘剩余空间: " + sDFreeSpace + "B.");
        return sDFreeSpace > j;
    }

    public static long getSDFreeSpace() {
        StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath());
        return statFs.getAvailableBlocks() * statFs.getBlockSize();
    }

    public static void openAndroidFile(Context context, String str) {
        Intent generateVideoAudioIntent;
        System.out.println("打印" + str);
        File file = new File(str);
        if (!file.exists()) {
            System.out.println("打开失败,原因:文件已经被移动或者删除");
            return;
        }
        String lowerCase = file.getName().substring(file.getName().lastIndexOf(".") + 1, file.getName().length()).toLowerCase(Locale.getDefault());
        System.out.println("取得扩展名" + lowerCase);
        if (lowerCase.equals("m4a") || lowerCase.equals("mp3") || lowerCase.equals("mid") || lowerCase.equals("xmf") || lowerCase.equals("ogg") || lowerCase.equals("wav")) {
            generateVideoAudioIntent = generateVideoAudioIntent(context, str, DATA_TYPE_AUDIO);
        } else if (lowerCase.equals("3gp") || lowerCase.equals("mp4")) {
            generateVideoAudioIntent = generateVideoAudioIntent(context, str, DATA_TYPE_VIDEO);
        } else if (lowerCase.equals("jpg") || lowerCase.equals("gif") || lowerCase.equals("png") || lowerCase.equals("jpeg") || lowerCase.equals("bmp")) {
            generateVideoAudioIntent = generateCommonIntent(context, str, DATA_TYPE_IMAGE);
        } else if (lowerCase.equals("apk")) {
            generateVideoAudioIntent = generateCommonIntent(context, str, DATA_TYPE_APK);
        } else if (lowerCase.equals("html") || lowerCase.equals("htm")) {
            generateVideoAudioIntent = generateHtmlFileIntent(str);
        } else if (lowerCase.equals("ppt")) {
            generateVideoAudioIntent = generateCommonIntent(context, str, DATA_TYPE_PPT);
        } else if (lowerCase.equals("xls")) {
            generateVideoAudioIntent = generateCommonIntent(context, str, DATA_TYPE_EXCEL);
        } else if (lowerCase.equals("doc")) {
            generateVideoAudioIntent = generateCommonIntent(context, str, DATA_TYPE_WORD);
        } else if (lowerCase.equals("pdf")) {
            generateVideoAudioIntent = generateCommonIntent(context, str, DATA_TYPE_PDF);
        } else if (lowerCase.equals("chm")) {
            generateVideoAudioIntent = generateCommonIntent(context, str, DATA_TYPE_CHM);
        } else if (lowerCase.equals("txt")) {
            generateVideoAudioIntent = generateCommonIntent(context, str, DATA_TYPE_TXT);
        } else {
            generateVideoAudioIntent = generateCommonIntent(context, str, DATA_TYPE_ALL);
        }
        context.startActivity(generateVideoAudioIntent);
    }
}