何とかあなたのファイルに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
ではなく文字列として取得することもできます。すべての月と日付のフォルダに2桁の名前を付けることをお勧めします(9月は09
、2月は02
)。いくつかのケースでは、これはあなたが正しい年代順の並べ替えを得るのに役立ちます。しかし、あなたはあなたの要求を知っています、私はしません。再度、パスを構築するにはPaths.get()
を使用します。次に、Files.createDirectories()
を使用して、ネストされたフォルダがファイルシステムに作成されていることを確認します(既に存在する場合は、何もせずにパスを返します)。
Path.resolve()
を使用して、ファイル名をフォルダパスに追加します。最後にFiles.move()
はファイルを移動先のフォルダに移動します。
ハッピーコーディング。
これはかなり簡単です。どちらの部分に苦労していますか? –
ファイル名を解析し、存在しない場合はディレクトリを作成してからファイルを移動します。これらはすべて非常に簡単な作業です。しかし、Java IOのチュートリアルであるjavadocを読んで少し研究する必要があります。これは開発者の仕事の一部です。 –
これは、1つのタイムゾーンで、またはUTCからの1つのオフセットでのみ発生しますか?これらのタイムスタンプのゾーンオフセットを知らないのは少し不快です。あるいは、それらはすべてUTCですか?そして、ファイルをUTCで日付別に保存することはできますか? –