簡體   English   中英

Java路徑中的硬編碼部分

[英]Hard coding part of the Path in Java

我有以下目錄樹

C:\folder1\folder2\SPECIALFolders1\folder3\file1.img
C:\folder1\folder2\SPECIALFolders2\folder3\file2.img
C:\folder1\folder2\SPECIALFolders3\folder3\file3.img
C:\folder1\folder2\SPECIALFolders4\folder3\file4.img
C:\folder1\folder2\SPECIALFolders5\folder3\file5.img

我想進入folder2,列出其中的所有目錄( SpecialFolders ),然后在將(folder3)添加到其路徑的同時檢索這些文件夾的路徑

我這樣做的原因是,我想稍后將此路徑傳遞給一種方法,以檢索Folder3中最后修改的文件。 我知道有更簡單的方法可以做到這一點,但這是一個非常特殊的情況。

我也在嘗試在特定時間范圍內檢索那些文件夾,因此我使用了while循環

        Date first = dateFormat.parse("2015-6-4");
        Calendar ystr = Calendar.getInstance();
        ystr.setTime(first);

        Date d = dateFormat.parse("2015-6-1");
        Calendar last = Calendar.getInstance();
        last.setTime(d);

        while(last.before(ystr)) 
        {
            //fullPath here = "C:\folder1\folder2\"
            File dir = (new File(fullPath));
            File[] files = dir.listFiles();

            for (File file : files) 
            {
                //Retrieve Directories only (skip files)
                if (file.isDirectory()) 
                { 
                    fullPath = file.getPath();
                    //last.add(Calendar.DATE, 1);
                    System.out.println("Loop " + fullPath);
                }
            }

        }
        fullPath += "\\folder3\\";
        return fullPath;

我的代碼的問題在於,它僅返回一個路徑(這是循環中的最后一個),這很有意義,但我想返回所有這樣的路徑

C:\folder1\folder2\SPECIALFolders1\folder3\
C:\folder1\folder2\SPECIALFolders2\folder3\
C:\folder1\folder2\SPECIALFolders3\folder3\
C:\folder1\folder2\SPECIALFolders4\folder3\
C:\folder1\folder2\SPECIALFolders5\folder3\

非常感謝您的輸入

代替fullPath String ,例如使用ArrayList<String>來存儲所有路徑。 而不是:

fullPath = file.getPath();

采用:

yourArrayList.add(file.getPath());

您的方法將返回一個包含所有路徑的ArrayList,並且您需要編寫一種方法以從中檢索所有路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM