在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
?
答案 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()
方法。
干杯,