Terry.Li-彬

          虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業(yè)。

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks
          <2008年2月>
          272829303112
          3456789
          10111213141516
          17181920212223
          2425262728291
          2345678

          常用鏈接

          留言簿(19)

          隨筆分類(107)

          隨筆檔案(141)

          文章分類(284)

          文章檔案(342)

          相冊

          收藏夾(58)

          家裝

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          1.         class File對象描述了所指定路徑下的文件和目錄的信息。通過File對象,可以查看某個路徑下的文件和目錄信息,并可操作路徑下的文件和目錄。
          2.         class File的應用
          2.1          查看(查詢)某個路徑下的文件信息。
          2.1.1          class File的構造函數(shù)
          class File有兩類構造函數(shù),一類帶有一個參數(shù),用于產生一個描述參數(shù)所所指向的路徑下的文件系統(tǒng)的對象;另一類帶有兩數(shù),第一個參數(shù)表示路徑,第二個參數(shù) 表示子目錄,用來產生描述第一個參數(shù)所指向的路徑下的某個子目錄的文件信息,子目錄名稱由第二個參數(shù)指定。如:
          File path = new File(“c:""”);產生一個描述c:"下的文件信息的對象
          File path = new File(“c:""”, “test”);產生一個描述c:"的test子目錄的文件信息的對象。
          2.1.2          list()和list(FilenameFilter filter)函數(shù)
          1)        list()函數(shù)以String數(shù)組的形式返回一個File對象所描述的文件信息。返回的是路徑下的所有文件和目錄的文件名和目錄名。
          2)        list(FilenameFilter filter)函數(shù)則提供了查詢功能,通過它可能查詢出滿足特定條件的文件名和目錄名。
          2.1.3          用FinenameFilter接口進行文件或目錄的查詢
          2.1.3.1.   這個接口只包含一個函數(shù):boolean accept(File dir, String name),第二個參數(shù)代表一個文件或目錄的名稱,第一個參數(shù)代表文件或目錄所在的目錄的名稱。當返回true,表示文件滿足查詢條件,要被放入結果中; 否則,表示文件不滿足要求。
          2.1.3.2.  工作原理
          當調用某個File對象的list(FilenameFilter filter)函數(shù)時, 會對File對象中的每一個文件或目錄調用參數(shù)filter中的accept()方法。在對一個文件或目錄調用accept()函數(shù)時把它的名稱以及一個 描述它所在的目錄的File對象作為參數(shù)傳給accept()函數(shù)。
          2.1.4          一個簡單的實例
          import java.io.File;
          import java.io.FilenameFilter;
          class DirList{
              public void printFile(String dir, String filter){
                  File path = new File(dir);
                  String[] fileList;
                  if(filter.length()==0){
                      System.out.println(""nAll file:");
                      fileList = path.list(); //取得所有文件信息
                 }
                  else{
          System.out.println(""nAll file including " + filter);
          //取得滿足查詢條件的文件信息
                      fileList = path.list(new DirFilter(filter));
                  }
                  for(int i=0; i<fileList.length; i++)
                      System.out.println(fileList[i]);
              }
              public void printFile(String dir){
                  printFile(dir, "");
              }
          }
          class DirFilter implements FilenameFilter{
              String afn; //存放查詢條件
          DirFilter(String afn) { this.afn = afn; }
          //滿足查詢條件,返回true
              public boolean accept(File dir, String name){
                  return name.indexOf(afn)!=-1;
              }
          }
          public class TestIO{
              public static void main(String[] args){
                  DirList dirList = new DirList();
                        //顯示F:"test下的文件信息
                  dirList.printFile("F:""test");
                        //顯示F:"test下名稱包含“.rar”文件信息
                  dirList.printFile("F:""test", ".rar");
                  //顯示F:"test下名稱包含“r”文件信息
          dirList.printFile("F:""test", "r");
              }
          }
          這個只是一個簡單的例子,只要完善accept()函數(shù),你也可以做出一個Java版的dir命令來。
          2.2          當然,我們還能通過File來文件或目錄進行創(chuàng)建、刪除和改名的操作。
          import java.io.File;
          import java.io.FilenameFilter;
          import java.util.Date;
          import java.text.SimpleDateFormat;
          class DirFilter implements FilenameFilter{
              String afn;
              DirFilter(String afn) { this.afn = afn; }
              public boolean accept(File dir, String name){
                  return name.indexOf(afn)!=-1;
              }
          }
          class OptFile{
              public static String getAbsolutePath(File f){
                  return f.getAbsolutePath();
              }
              public static String getPath(File f){
                  return f.getParent();
              }
              public static String getName(File f){
                  return f.getName();
              }
              public static long getLength(File f){
                  return f.length();
              }
              public static String getParent(File f){
                 return f.getParent();
              }
              public static String getLastModified(File f, String format){
                  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                  if(format.equals("ymdh"))
                      sdf = new SimpleDateFormat("yyyy-MM-dd hh");
                  else if(format.equals("ymdhm"))
                      sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm");
                  return sdf.format((new Date(f.lastModified())));
              }
              public static String getLastModified(File f){
                  return getLastModified(f, "ymd");
              }
              public static boolean canRead(File f){
                  return f.canRead();
              }
              public static boolean canWrite(File f){
                  return f.canWrite();
              }
              public static boolean isFile(File f){
                  return f.isFile();
              }
              public static boolean isDir(File f){
                  return f.isDirectory();
              }
              public static boolean rename(File oldName, File newName){
                  return oldName.renameTo(newName);
              }
              public static boolean delete(File f){
                  return f.delete();
              }
              public static boolean mkdir(File f){
                  return f.mkdirs();
              }
              /**
               * 從指定路徑中查詢文件
               */
              public static File[] findFile(String filePath, String fileName){
                  File f = new File(filePath);
                  File[] result = f.listFiles(new DirFilter(fileName));
                  return result;
              }
              public static void printFileAtt(File f){       
                  System.out.println(
                      " Absolute path: " + getAbsolutePath(f) +
                      ""n Can read: " + canRead(f) +
                      ""n Can write: " + canWrite(f) + 
                      ""n path: " + getPath(f) +
                      ""n name: " + getName(f) +
                      ""n parent: " + getParent(f) +
                      ""n length: " + getLength(f) +
                      ""n lastModified: " + getLastModified(f));
                  if(isFile(f))
                      System.out.println(" it's a file");
                  else if(isDir(f))
                      System.out.println(" it's a directory");
              }
          }
          public class TestIO{
              public static void main(String[] args){
                  File f1 = new File("F:""nepalon""thinkinginjava""test");
                  File f2 = new File("F:""nepalon""thinkinginjava""test""aa ");
                  OptFile.printFileAtt(f1);
                  OptFile.printFileAtt(f2);
                  //當對文件或目錄進行改名,且更新到一個不同的下時,
                  //會先把文件或整個目錄剪切到新目錄下,再重新命名
                  File nf2 = new File("F:""nepalon""thinkinginjava""使用log4j.files");
                  if(OptFile.rename(f2, nf2)){
                      System.out.println("after rename f2:");
                      OptFile.printFileAtt(nf2);
                  }
                  else
                      System.out.println("rename nf2 failly");
                //進行刪除操作時,只能刪除文件;如果刪除的是目錄,會返回false
                  File df = new File("F:""nepalon""thinkinginjava""test""1001.doc");
                  if(OptFile.delete(df))
                      System.out.println("Delete df successfully");
                  else
                      System.out.println("Delete df failly");
                  System.out.println("Find file with name ""1001""");
                  OptFile.findFile("F:""nepalon""thinkinginjava""test", "1001");
                  File mf = new File("F:""nepalon""thinkinginjava""test""1001");
                  if(OptFile.mkdir(mf))
                      System.out.println("create directory mf successfully");
                  else
                      System.out.println("create directory mf failly");
              }
          }
          posted on 2008-02-13 23:08 禮物 閱讀(312) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 滦南县| 阜康市| 广南县| 聊城市| 德安县| 肃宁县| 克什克腾旗| 沾益县| 阜阳市| 谷城县| 交口县| 孝感市| 本溪| 茌平县| 建德市| 灌南县| 交口县| 神木县| 北辰区| 旬邑县| 石狮市| 淮南市| 天祝| 东乌| 宁阳县| 新绛县| 龙里县| 林州市| 南郑县| 金乡县| 林西县| 安顺市| 永清县| 宁德市| 富源县| 云龙县| 长白| 唐山市| 虎林市| 福安市| 南城县|