Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 我的Android進階之旅------>Android使用正則表達式匹配掃描指定目錄下的所有媒體文件(音樂、圖像、視頻文件)

我的Android進階之旅------>Android使用正則表達式匹配掃描指定目錄下的所有媒體文件(音樂、圖像、視頻文件)

編輯:關於Android編程

今天使用正則表達式匹配指定目錄下的所有媒體文件,下面將這份代碼簡化了,可以收藏下來,當作工具類。 [java]   package match;      import java.io.File;   import java.util.regex.Matcher;   import java.util.regex.Pattern;      public class Utils {       /**       * 遍歷指定文件夾下的資源文件       * @param folder 文件       */       public static void simpleScanning(File folder) {           //指定正則表達式           Pattern mPattern = Pattern.compile("([^\\.]*)\\.([^\\.]*)");           // 當前目錄下的所有文件           final String[] filenames = folder.list();           // 當前目錄的名稱           //final String folderName = folder.getName();           // 當前目錄的絕對路徑           //final String folderPath = folder.getAbsolutePath();           if (filenames != null) {               // 遍歷當前目錄下的所有文件               for (String name : filenames) {                   File file = new File(folder, name);                   // 如果是文件夾則繼續遞歸當前方法                   if (file.isDirectory()) {                       simpleScanning(file);                   }                    // 如果是文件則對文件進行相關操作                   else {                       Matcher matcher = mPattern.matcher(name);                       if (matcher.matches()) {                           // 文件名稱                           String fileName = matcher.group(1);                           // 文件後綴                           String fileExtension = matcher.group(2);                           // 文件路徑                           String filePath = file.getAbsolutePath();                                                      if (Utils.isMusic(fileExtension)) {                               // 初始化音樂文件......................                               System.out.println("This file is Music File,fileName="+fileName+"."                                       +fileExtension+",filePath="+filePath);                           }                                                      if (Utils.isPhoto(fileExtension)) {                               // 初始化圖片文件......................                               System.out.println("This file is Photo File,fileName="+fileName+"."                                       +fileExtension+",filePath="+filePath);                           }                                                      if (Utils.isVideo(fileExtension)) {                               // 初始化視頻文件......................                               System.out.println("This file is Video File,fileName="+fileName+"."                                       +fileExtension+",filePath="+filePath);                           }                       }                   }               }           }       }       /**       * 判斷是否是音樂文件       * @param extension 後綴名       * @return       */       public static boolean isMusic(String extension) {           if (extension == null)               return false;              final String ext = extension.toLowerCase();           if (ext.equals("mp3") || ext.equals("m4a") || ext.equals("wav") || ext.equals("amr") || ext.equals("awb") ||                    ext.equals("aac") || ext.equals("flac") || ext.equals("mid") || ext.equals("midi") ||                    ext.equals("xmf") || ext.equals("rtttl") || ext.equals("rtx") || ext.equals("ota") ||                    ext.equals("wma") ||ext.equals("ra") || ext.equals("mka") || ext.equals("m3u") || ext.equals("pls")) {               return true;           }           return false;       }       /**       * 判斷是否是圖像文件       * @param extension 後綴名       * @return       */       public static boolean isPhoto(String extension) {           if (extension == null)               return false;              final String ext = extension.toLowerCase();           if (ext.endsWith("jpg") || ext.endsWith("jpeg") || ext.endsWith("gif") || ext.endsWith("png") ||                    ext.endsWith("bmp") || ext.endsWith("wbmp")) {               return true;           }           return false;       }       /**       * 判斷是否是視頻文件       * @param extension 後綴名       * @return       */       public static boolean isVideo(String extension) {           if (extension == null)               return false;              final String ext = extension.toLowerCase();           if (ext.endsWith("mpeg") || ext.endsWith("mp4") || ext.endsWith("mov") || ext.endsWith("m4v") ||                    ext.endsWith("3gp") || ext.endsWith("3gpp") || ext.endsWith("3g2") ||                    ext.endsWith("3gpp2") || ext.endsWith("avi") || ext.endsWith("divx") ||                    ext.endsWith("wmv") || ext.endsWith("asf") || ext.endsWith("flv") ||                    ext.endsWith("mkv") || ext.endsWith("mpg") || ext.endsWith("rmvb") ||                   ext.endsWith("rm") || ext.endsWith("vob") || ext.endsWith("f4v")) {               return true;           }           return false;       }   }       下面使用該工具類進行測試指定的路徑:/home/ouyangpeng/justForTest 當前路徑下放了一些測試文件,如下圖所示:   [java]   package match;      import java.io.File;      public class Test{       public static void main(String[] args) {           String path="/home/ouyangpeng/justForTest";           File file = new File(path);           if (file==null) {               System.out.println("file does not exist");           }else{               Utils.simpleScanning(file);           }       }   }     打印的結果如下所示: [html]   This file is Video File,fileName=Love Is Lost (Remix Version) 高清(360P).mp4,filePath=/home/ouyangpeng/justForTest/Love Is Lost (Remix Version) 高清(360P).mp4   This file is Video File,fileName=URATA NAOYA (AAA) _LIVE 高清(360P).mp4,filePath=/home/ouyangpeng/justForTest/URATA NAOYA (AAA) _LIVE 高清(360P).mp4   This file is Music File,fileName=K歌之王.mp3,filePath=/home/ouyangpeng/justForTest/K歌之王.mp3   This file is Photo File,fileName=507e4c75a6e64.jpg,filePath=/home/ouyangpeng/justForTest/507e4c75a6e64.jpg   This file is Video File,fileName=a.mp4,filePath=/home/ouyangpeng/justForTest/a.mp4   This file is Video File,fileName=Do You Feel Me (專輯封面拍攝花絮) 高清(360P).mp4,filePath=/home/ouyangpeng/justForTest/Do You Feel Me (專輯封面拍攝花絮) 高清(360P).mp4  
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved