posts - 23,  comments - 1,  trackbacks - 0
          import java.io.*;

          public class FileOperate {
            public FileOperate() {
            }

            /**
             * 新建目錄
             * @param folderPath String 如 c:/fqf
             * @return boolean
             */
            public void newFolder(String folderPath) {
              try {
                String filePath = folderPath;
                filePath = filePath.toString();
                java.io.File myFilePath = new java.io.File(filePath);
                if (!myFilePath.exists()) {
                  myFilePath.mkdir();
                }
              }
              catch (Exception e) {
                System.out.println("新建目錄操作出錯");
                e.printStackTrace();
              }
            }

            /**
             * 新建文件
             * @param filePathAndName String 文件路徑及名稱 如c:/fqf.txt
             * @param fileContent String 文件內容
             * @return boolean
             */
            public void newFile(String filePathAndName, String fileContent) {

              try {
                String filePath = filePathAndName;
                filePath = filePath.toString();
                File myFilePath = new File(filePath);
                if (!myFilePath.exists()) {
                  myFilePath.createNewFile();
                }
                FileWriter resultFile = new FileWriter(myFilePath);
                PrintWriter myFile = new PrintWriter(resultFile);
                String strContent = fileContent;
                myFile.println(strContent);
                resultFile.close();

              }
              catch (Exception e) {
                System.out.println("新建目錄操作出錯");
                e.printStackTrace();

              }

            }

            /**
             * 刪除文件
             * @param filePathAndName String 文件路徑及名稱 如c:/fqf.txt
             * @param fileContent String
             * @return boolean
             */
            public void delFile(String filePathAndName) {
              try {
                String filePath = filePathAndName;
                filePath = filePath.toString();
                java.io.File myDelFile = new java.io.File(filePath);
                myDelFile.delete();

              }
              catch (Exception e) {
                System.out.println("刪除文件操作出錯");
                e.printStackTrace();

              }

            }

            /**
             * 刪除文件夾
             * @param filePathAndName String 文件夾路徑及名稱 如c:/fqf
             * @param fileContent String
             * @return boolean
             */
            public void delFolder(String folderPath) {
              try {
                delAllFile(folderPath); //刪除完里面所有內容
                String filePath = folderPath;
                filePath = filePath.toString();
                java.io.File myFilePath = new java.io.File(filePath);
                myFilePath.delete(); //刪除空文件夾

              }
              catch (Exception e) {
                System.out.println("刪除文件夾操作出錯");
                e.printStackTrace();

              }

            }

            /**
             * 刪除文件夾里面的所有文件
             * @param path String 文件夾路徑 如 c:/fqf
             */
            public void delAllFile(String path) {
              File file = new File(path);
              if (!file.exists()) {
                return;
              }
              if (!file.isDirectory()) {
                return;
              }
              String[] tempList = file.list();
              File temp = null;
              for (int i = 0; i < tempList.length; i++) {
                if (path.endsWith(File.separator)) {
                  temp = new File(path + tempList[i]);
                }
                else {
                  temp = new File(path + File.separator + tempList[i]);
                }
                if (temp.isFile()) {
                  temp.delete();
                }
                if (temp.isDirectory()) {
                  delAllFile(path+"/"+ tempList[i]);//先刪除文件夾里面的文件
                  delFolder(path+"/"+ tempList[i]);//再刪除空文件夾
                }
              }
            }

            /**
             * 復制單個文件
             * @param oldPath String 原文件路徑 如:c:/fqf.txt
             * @param newPath String 復制后路徑 如:f:/fqf.txt
             * @return boolean
             */
            public void copyFile(String oldPath, String newPath) {
              try {
                int bytesum = 0;
                int byteread = 0;
                File oldfile = new File(oldPath);
                if (oldfile.exists()) { //文件存在時
                  InputStream inStream = new FileInputStream(oldPath); //讀入原文件
                  FileOutputStream fs = new FileOutputStream(newPath);
                  byte[] buffer = new byte[1444];
                  int length;
                  while ( (byteread = inStream.read(buffer)) != -1) {
                    bytesum += byteread; //字節(jié)數(shù) 文件大小
                    System.out.println(bytesum);
                    fs.write(buffer, 0, byteread);
                  }
                  inStream.close();
                }
              }
              catch (Exception e) {
                System.out.println("復制單個文件操作出錯");
                e.printStackTrace();

              }

            }

            /**
             * 復制整個文件夾內容
             * @param oldPath String 原文件路徑 如:c:/fqf
             * @param newPath String 復制后路徑 如:f:/fqf/ff
             * @return boolean
             */
            public void copyFolder(String oldPath, String newPath) {

              try {
                (new File(newPath)).mkdirs(); //如果文件夾不存在 則建立新文件夾
                File a=new File(oldPath);
                String[] file=a.list();
                File temp=null;
                for (int i = 0; i < file.length; i++) {
                  if(oldPath.endsWith(File.separator)){
                    temp=new File(oldPath+file[i]);
                  }
                  else{
                    temp=new File(oldPath+File.separator+file[i]);
                  }

                  if(temp.isFile()){
                    FileInputStream input = new FileInputStream(temp);
                    FileOutputStream output = new FileOutputStream(newPath + "/" +
                        (temp.getName()).toString());
                    byte[] b = new byte[1024 * 5];
                    int len;
                    while ( (len = input.read(b)) != -1) {
                      output.write(b, 0, len);
                    }
                    output.flush();
                    output.close();
                    input.close();
                  }
                  if(temp.isDirectory()){//如果是子文件夾
                    copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]);
                  }
                }
              }
              catch (Exception e) {
                System.out.println("復制整個文件夾內容操作出錯");
                e.printStackTrace();

              }

            }

            /**
             * 移動文件到指定目錄
             * @param oldPath String 如:c:/fqf.txt
             * @param newPath String 如:d:/fqf.txt
             */
            public void moveFile(String oldPath, String newPath) {
              copyFile(oldPath, newPath);
              delFile(oldPath);

            }

            /**
             * 移動文件到指定目錄
             * @param oldPath String 如:c:/fqf.txt
             * @param newPath String 如:d:/fqf.txt
             */
            public void moveFolder(String oldPath, String newPath) {
              copyFolder(oldPath, newPath);
              delFolder(oldPath);

            }
          }

          posted on 2006-03-09 15:55 咖啡時間 閱讀(755) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          <2006年3月>
          2627281234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          專 注 Java 技 術 的 開 發(fā)... ... 享 受 Java 咖 啡 的 美 味... ... 擁 有 Sun 一 般 的 人 生

          常用鏈接

          留言簿(1)

          隨筆檔案(23)

          文章檔案(1)

          Java學習資源

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 阳江市| 江西省| 黑龙江省| 大同县| 都安| 阳谷县| 皮山县| 清河县| 通海县| 乐平市| 宁津县| 轮台县| 鄂托克前旗| 洛浦县| 弥渡县| 青神县| 遂宁市| 尼玛县| 衡南县| 永和县| 灵丘县| 景泰县| 西畴县| 郧西县| 基隆市| 蒙城县| 响水县| 措美县| 陈巴尔虎旗| 志丹县| 东至县| 平昌县| 九台市| 常宁市| 威宁| 双江| 沂源县| 大悟县| 南江县| 汉源县| 望谟县|