package com.example.pickerviewlibrary.picker.util; import android.content.Context; import android.os.Environment; import android.util.Log; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; /** * Created by zuoxiao on 2018/12/31. */ public class FileUtil { public static String getSDPath() { File sdDir = null; boolean sdCardExist = Environment.getExternalStorageState() .equals(Environment.MEDIA_MOUNTED);//判断sd卡是否存在 if (sdCardExist) { sdDir = Environment.getExternalStorageDirectory();//获取跟目录 } return sdDir.toString(); } /** * @param context context * @param assetName asset文件 * @param savePath 目标路径 * @param saveName 目标文件名 */ public static String copyFileFromAssets(Context context, String assetName, String savePath, String saveName) { // 若目标文件夹不存在,则创建 String path = context.getFilesDir() + "/" + savePath; File dir = new File(path); if (!dir.exists()) { if (!dir.mkdir()) { Log.d("FileUtils", "mkdir error: " + savePath); return ""; } } // 拷贝文件 String filename = path + "/" + saveName; File file = new File(filename); if (!file.exists()) { try { InputStream inStream = context.getAssets().open(assetName); FileOutputStream fileOutputStream = new FileOutputStream(filename); int byteread; byte[] buffer = new byte[1024]; while ((byteread = inStream.read(buffer)) != -1) { fileOutputStream.write(buffer, 0, byteread); } fileOutputStream.flush(); inStream.close(); fileOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } Log.d("FileUtils", "[copyFileFromAssets] copy asset file: " + assetName + " to : " + filename); } else { Log.d("FileUtils", "[copyFileFromAssets] file is exist: " + filename); } return path; } }