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
我想进入文件夹 2,列出其中的所有目录 (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;
我的代码的问题是它只有 return 一条路径(这是循环中的最后一条)——这是有道理的,但我想 return 所有路径,例如这个
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());
您的方法将 return 一个包含所有路径的 ArrayList,您需要编写一个方法来从中检索所有路径。
我有以下目录树
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
我想进入文件夹 2,列出其中的所有目录 (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;
我的代码的问题是它只有 return 一条路径(这是循环中的最后一条)——这是有道理的,但我想 return 所有路径,例如这个
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());
您的方法将 return 一个包含所有路径的 ArrayList,您需要编写一个方法来从中检索所有路径。