java獲取指定目錄中的文件列表


最近項目中會動態生成文件html及相關資源文件(css,js,png,mp3),為了防止文件名重復,需要獲取目錄中相同類型文件的最大編號,下面我用代碼來實現獲得文件列表。

	public static void getFiles(String path) {

		File file = new File(path);
		// 如果這個路徑是文件夾
		if (file.isDirectory()) {
			// 獲取路徑下的所有文件
			File[] files = file.listFiles();
			for (int i = 0; i < files.length; i++) {
				// 如果還是文件夾 遞歸獲取里面的文件 文件夾
				if (files[i].isDirectory()) {
					System.out.println("目錄:" + files[i].getPath());
					getFiles(files[i].getPath());

				} else {
					System.out.println("文件:" + files[i].getName()); // files[i].getPath());
				}
			}

		} else {

			System.out.println("文件:" + file.getPath());

		}
	}

  

	public static File[] getFilter(String strFilePath, String strExtension) {

        File[] list = new File(strFilePath).listFiles();
        
        for(File file : list)
        {
           if(file.isFile())
           {
               if (file.getName().endsWith(strExtension)) {
                   System.out.println(file.getAbsolutePath());
               }
           }
        }

        return list;
	}

  

        如果想要獲得當前文件夾中的文件名只需要 String [] fileName = file.list();  就可以了。如果要包括文件中的文件名就可以用遞歸的方式。下面是兩個具體的實現。

  其中public static String [] getFileName(String path)是只得到當前文件中的文件名。public static void getAllFileName(String path,ArrayList<String> fileName)是包括當前文件及其子文件的文件名。

public class GetFileName
{
    public static String [] getFileName(String path)
    {
        File file = new File(path);
        String [] fileName = file.list();
        return fileName;
    }
    public static void getAllFileName(String path,ArrayList<String> fileName)
    {
        File file = new File(path);
        File [] files = file.listFiles();
        String [] names = file.list();
        if(names != null)
        fileName.addAll(Arrays.asList(names));
        for(File a:files)
        {
            if(a.isDirectory())
            {
                getAllFileName(a.getAbsolutePath(),fileName);
            }
        }
    }
    public static void main(String[] args)
    {
        String [] fileName = getFileName("F:\\xiaoshuo");
        for(String name:fileName)
        {
            System.out.println(name);
        }
        System.out.println("--------------------------------");
        ArrayList<String> listFileName = new ArrayList<String>(); 
        getAllFileName("F:\\xiaoshuo",listFileName);
        for(String name:listFileName)
        {
            System.out.println(name);
        }
         
    }
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM