如何在java中获取自动生成的文件夹路径以解析文件夹

时间:2015-05-19 06:43:43

标签: java

在Unix中创建了一个像/data/test/files/2015/05/19这样的文件夹路径。从年份开始,文件夹将自动生成/data/test/files/$(date +%Y)/$(date +%m)/$(date +%d)

所以上面文件夹位置内的.txt文件应该通过Java代码解析并移动到DB。

我试图解析该位置,因为2015/05/19将来会发生变化,因此尝试在Java中附加当前年/月/日,然后解析该特定文件。

//To get current year
String thisYear = new SimpleDateFormat("yyyy").format(new Date());
System.out.println("thisYear :"+thisYear);
//To get current month
String thisMonth = new SimpleDateFormat("MM").format(new Date());
System.out.println("thisMonth : "+thisMonth);

//To get current date
String thisDay = new SimpleDateFormat("dd").format(new Date());
System.out.println("thisDay : "+thisDay);

File f = new File("\\data\\test\\files\\+"thisYear"+\\+"thisMonth"+\\+"thisDay"+ \\refile.txt");

以上没有用,所以如何在路径中使用thisYear,thisMonth,thisDay

2 个答案:

答案 0 :(得分:2)

试试这个。我认为这很有效。

File f = new File("/data/test/files/" + thisYear+ "/" + thisMonth+ "/" +thisDay + "/refile.txt");

答案 1 :(得分:1)

您可以使用SimpleDateFormat类,如:

String format = "yyyy/MM/dd".replace( "/" , File.separator );
SimpleDateFormat sdf = new SimpleDateFormat( format );

String pathPrefix = "/data/test/files/".replace( "/" , File.separator );
File f = new File( pathPrefix + sdf.format( new Date() ) + File.separator + "refile.txt" );

请记住路径分隔符是依赖于文件系统的,因此File.separator用法。如果您不在“今日”目录之后,也可以用其他内容替换new Date()

如果您需要扫描所有日期格式的目录,这是另一个问题的另一个问题,但请查看File.list()方法。

干杯,