1 import java.io.File; 2 import java.io.FileOutputStream; 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.io.OutputStream; 6 import java.util.ArrayList; 7 import java.util.List; 8 9 import android.os.Environment; 10 11 import com.androidmediaplayer.model.Mp3Info; 12 13 public class FileUtil { 14 15 /** 16 * 得到当前外部存储设备的目录 17 */ 18 private static String SDCardRoot = Environment 19 .getExternalStorageDirectory().getAbsolutePath() + File.separator; 20 21 /** 22 * 在SD卡上创建文件 23 * 24 * @throws IOException 25 */ 26 public static File createFileInSDCard(String fileName, String dir) 27 throws IOException { 28 if (isFileExist(fileName, dir)) { 29 deleteFile(dir, fileName); 30 } 31 File file = new File(SDCardRoot + dir + File.separator + fileName); 32 file.createNewFile(); 33 return file; 34 } 35 36 /** 37 * 在SD卡上创建目录 38 * 39 * @param dirName 40 */ 41 public static File creatSDDir(String dir) { 42 File dirFile = new File(SDCardRoot + dir + File.separator); 43 dirFile.mkdirs(); 44 return dirFile; 45 } 46 47 /** 48 * 删除SD卡上的文件 49 * 50 * @param dir 51 * 文件夹目录(已包含根目录) 52 * @param fileName 53 * 文件名 54 * @return 55 * @throws IOException 56 */ 57 public static boolean deleteFile(String dir, String fileName) 58 throws IOException { 59 File dirFile = new File(SDCardRoot + dir + File.separator + fileName); 60 return dirFile.delete(); 61 } 62 63 /** 64 * 删除_data路径的文件 65 * 66 * @param _data 67 * @return 68 */ 69 public static boolean deleteAnotherFile(String _data) throws IOException { 70 File dirFile = new File(_data); 71 return dirFile.delete(); 72 } 73 74 /** 75 * 判断SD卡上的文件是否存在 76 */ 77 public static boolean isFileExist(String fileName, String path) { 78 File file = new File(SDCardRoot + path + File.separator + fileName); 79 return file.exists(); 80 } 81 82 public static boolean _isFileExist(String fileName) { 83 File file = new File(SDCardRoot + "mp3" + File.separator + fileName); 84 return file.exists(); 85 } 86 87 /** 88 * 89 * @param path 路径加文件名加后缀 90 * @return 91 */ 92 public static boolean _isFileExist2(String path){ 93 File file = new File(path); 94 return file.exists(); 95 } 96 97 /** 98 * 判断SD卡上的文件夹是否存在 99 */ 100 public static boolean isFilePathExist(String path) { 101 File file = new File(SDCardRoot + path); 102 return file.exists(); 103 } 104 105 public static String getFilePath(String fileName) { 106 return SDCardRoot + "mp3" + File.separator + fileName; 107 } 108 109 public static void updateFileName(File file, String finalFileName) { 110 String path = file.getAbsolutePath(); 111 String orgFileName = path.substring(0, path.lastIndexOf("/") + 1) 112 + finalFileName; 113 file.renameTo(new File(orgFileName)); 114 } 115 116 /** 117 * 将一个InputStream里面的数据写入到SD卡中 118 */ 119 public static File write2SDFromInput(String path, String fileName, 120 InputStream inPutStream) { 121 File file = null; 122 OutputStream outPutStream = null; 123 try { 124 creatSDDir(path); 125 file = createFileInSDCard(fileName, path); 126 outPutStream = new FileOutputStream(file); 127 byte buffer[] = new byte[64]; 128 int temp; 129 while ((temp = inPutStream.read(buffer)) != -1) { 130 outPutStream.write(buffer, 0, temp); 131 } 132 outPutStream.flush(); 133 } catch (Exception e) { 134 e.printStackTrace(); 135 } finally { 136 try { 137 if (outPutStream != null) { 138 outPutStream.close(); 139 } 140 } catch (Exception e) { 141 e.printStackTrace(); 142 } 143 } 144 return file; 145 } 146 147 /** 148 * 读取目录中的MP3文件的名字和大小 149 */ 150 public static List<Mp3Info> getMp3Files(String path) { 151 ArrayList<Mp3Info> mp3Infos = new ArrayList<Mp3Info>(); 152 File file = new File(SDCardRoot + File.separator + path); 153 File[] files = file.listFiles(); 154 Mp3Info mp3Info = null; 155 int length = files.length; 156 for (int i = 0; i < length; i++) { 157 if (files[i].getName().endsWith("mp3")) { 158 mp3Info = new Mp3Info(); 159 mp3Info.setMp3Name(files[i].getName()); 160 mp3Info.setMp3Size(String.valueOf(files[i].length())); 161 String[] temp = mp3Info.getMp3Name().split("\\."); 162 String lrcName = temp[0] + ".lrc"; 163 mp3Info.setLrcName(lrcName); 164 mp3Infos.add(mp3Info); 165 } 166 } 167 return mp3Infos; 168 } 169 170 }
相关文章: