文件夹操作


import java.io.File;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

public class DirWork {

    private static File m_root; //记录要删除的路径

    private static ArrayList m_dirs; //

    /**

     * 功能:删除文件夹方法

     * @param dir 要删除的文件夹路径(java.io.File类型)

     */

    public void deleteDirs(java.io.File dir) {

        try {

            m_root = dir;

            m_dirs = new ArrayList();

            if (!m_root.isDirectory()) { //判断输入的是否为路径

                System.out.println(m_root.toString() + " 不是路径");

            } else {

                //输出m_dirs中记录的值

                //for(int i=0 ; i<m_dirs.size() ; i++){

                // System.out.println(((File)m_dirs.get(i)).toString());

                //}

                m_dirs.add(m_root);

                this.visitAll(m_root); //获取指定路径下的所有文件已经文件夹(递归调用)

                this.rootDelete(); //删除list中的所有文件(倒叙循环删除)

            }

        } catch (Exception ex) {

            System.out.println("error in deleteDirs : " + ex.getMessage());

        }

    }

    /**

     * 功能:删除文件或文件夹

     * 注意:使用倒叙删除,先删除文件,然后删除空文件夹

     */

    private void rootDelete() {

        try {

            if (m_dirs != null) {

                //使用倒叙循环删除(先删除文件,再删除文件夹)

                for (int i = m_dirs.size() - 1; i >= 0; i--) {

                    File f = (File) m_dirs.remove(i); //获取之后删除list中的数据

                    //删除数据

                    if (!f.delete()) {

                        System.out.println("文件路径:" + f.toString() + " 不存在");

                    }

                }

            } else {

                System.out.println("获取文件list列表(m_dirs)为空");

            }

        } catch (Exception ex) {

            System.out.println("error in rootDelete : " + ex.getMessage());

        }

    }

    /**

     * 功能:获取所有文件和文件夹,存储在m_dirs中

     * 注意:递归调用

     * @param tempRoot 文件路径

     */

    private void visitAll(File tempRoot) {

        try {

            //获取指定路径下的所有文件

            File[] dirs = tempRoot.listFiles();

            if (dirs != null) {

                //将文件数组转换成List对象

                List dirslist = Arrays.asList(dirs);

                //将dirslist完全添加到m_dirs中

                m_dirs.addAll(dirslist);

                //递归调用

                for (int i = 0; i < dirslist.size(); i++) {

                    this.visitAll((File) dirslist.get(i));

                }

            }

        } catch (Exception ex) {

            System.out.println("error in visitAll : " + ex.getMessage());

        }

    }

   //==================================================================================\\

   

   /**

    * 创建一个文件夹

    * @param photoId String

    * photoId :文件夹的名字

    */

   public void mkDir(String photoId){

       File dirFile;

       boolean bFile;

       String disk = "E:\\photo\\jim\\";

       try {

           dirFile = new File(disk+photoId);

           bFile = dirFile.exists();

           if (bFile == true) {

               System.out.println(photoId+"文件夹存在");

           } else {

               bFile = dirFile.mkdir();

               if (bFile == true) {

                   System.out.println(photoId+"文件夹 创建成功");

               }

           }

       } catch (Exception e) {

           e.printStackTrace();

       }

   }


你可能感兴趣的:(java,F#)