我有时间戳作为fileName的文件。我想根据时间戳将这些文件移动到年/月/日文件夹中,这只是fileName。
例如:fileName = 2017-11-2_23-59-59(YYYY-mm-dd_HH-MM-SS)。现在我想将此文件移动到2017文件夹并在该文件夹11(月)文件夹内和该2(日期)文件夹内,如果该文件夹不存在则创建一个。
因此,所有日期文件夹应位于月份文件夹内,而月份文件夹应位于年份文件夹内。这是我需要的文件夹结构。
答案 0 :(得分:1)
这可能对您有所帮助:
String file = form.getFile().getOriginalFilename();
String[] dateParts = file.split("-");
String year = dateParts[0];
String month = dateParts[1];
String day = dateParts[2];
String UPLOADED_FOLDER = "C://Users//pandeyv//Desktop//"+year+"//"+month+"//"+day+"//";
File dir = new File(UPLOADED_FOLDER);
if (!dir.exists())
dir.mkdirs();
希望这有帮助!
答案 1 :(得分:0)
我假设你的文件有Path
。也许您使用Paths.get()
来获得一个。或者获取包含文件的文件夹(目录)的路径,然后获取Files.list()
以获取文件夹中每个文件的路径。在Path
中,获取文件名称(例如2017-11-2_23-59-59
)。
我建议您使用DateTimeFormatter
和LocalDateTime
将文件名解析为日期时间。为DateTimeFormatter
指定格式模式时,请注意它区分大小写。你需要一个像uuuu-M-d_H-mm-ss
这样的模式;请自我调整。
为目标文件夹构建新的Path
(例如2017/11/02
)。使用方法getYear
,getMonthValue
和getDayOfMonth
从您的日期时间获取年,月和日。或者使用格式化程序将它们作为字符串而不是int
来获取。我希望所有月份和日期文件夹都有两位数的名称(9月为09
,本月2日为02
)。在某些情况下,这将帮助您获得正确的按时间顺序排序;但是,你知道你的要求,我不知道。再次,使用Paths.get()
来构建路径。然后使用Files.createDirectories()
确保在文件系统中创建嵌套文件夹(如果它们已经存在,则该方法不执行任何操作,只返回路径)。
使用Path.resolve()
将文件名附加到文件夹路径。最后Files.move()
会将您的文件移至目标文件夹。
快乐的编码。