2016-10-07 5 views
-1

を上書きする例外投げ:私は約1000 ePubファイルを一つのフォルダを持っているは、複数のディレクトリにファイルをコピーするのいずれかのコードのディレクトリ

http://pastebin.com/mKmpX4MY

設定を。 Title.epub

とカバーアートのための

AuthorFirstName AuthorLastName - - Title.jpeg

時には著者はcolaborateとファイル名がこの形式

を次の彼らはすべての形式

AuthorFirstName AuthorLastNameに従ってください

AuthorFirstName AuthorLastName & SecondAuthorFirstname ScondAuthorLastName - Title.epub

それは次のようになりますので、何人かの著者が複数の本を書く: http://i.imgur.com/7W3rUAf.png

私が何をしたいのかは、スクリプトがその著者にちなんで名付けられたディレクトリに同じ著者からの本をコピーする必要があります。すべての本は、それぞれの著者の名前に由来するディレクトリに置かれていなければなりません。もし彼らがコラボレーションすれば、彼らは自分のフォルダを手に入れます。 ArrayList oldAuthorDirectoriesはソースの場所とArrayListのパスをリストしますnewAuthorDirectoresは新しいディレクトリのパスをリストします(61行目に気づくでしょう。ファイルをコピーしたいときに新しいパスの最後に "\"を追加しました)それらのディレクトリに)。 すべては以下を除いて動作し、私はそれの上に私の髪をリッピングしてきました。

REPLACE_EXSISTINGオプションを使用すると、コピー機能は、ディレクトリを拡張子のない作成者だけを含むepubファイルに置き換えます。 私はそれを使用しない場合、ファイルExsisting例外をスローします。

ご協力いただければ幸いです。

+1

あなたはカップルの文字列、およびパス操作にこれをダウン減らすことができなければなりませんか?また、あなたは本当に "\\"を使用すべきではない、Java APIはあなたのためにそれを世話する必要があります。 – matt

+1

まず、実行したくないものすべてを検証可能に印刷するものを作ってください。そうすることで、何をするかを確認できます(印刷パスなど)。この種のジョブにjavaを使用することは、永久的なものとしてファイルを削除する場合は、特にスケッチとなる可能性があります。 – Rogue

+0

コピーアウトにコメントしました。上に次のコードを追加しました。 System.out.println( "Copy:" + newAuthorDirectores.get(i)) "+ oldAuthorDirectories.get(y) コピー:C:\ Users \ Daniel \ Dropbox \ eBooks \ Caliber Lib \ William Golding - Flies.epubの君はC:\ Users \ Daniel \ Desktop \ Newフォルダ\ William Gibsonにコピーします。 期待通りに動作するはずですが、それはわかりません –

答えて

0

私は以下のエラーを発見しました。

宛先パスにファイル名が必要です。代わりに

C:/Desktop/Author 

のそれは

C:/Desktop/Author/Author - title.epub 
関連する問題