- PR -

ファイルの削除について

投稿者投稿内容
みーちく
大ベテラン
会議室デビュー日: 2002/08/29
投稿数: 131
投稿日時: 2002-11-22 18:12
こんばんわ。みーちくと申します。

また、皆様のご意見をお聞きしたいのですが。
宜しくお願い致します。

あるディレクトリに入っている、CSVファイルをDBに登録するプログラムを作成しております。登録が問題なかったら、違うディレクトリ(今日の日付のディレクトリ)を作成して、CSVファイルをバックアップとり、バックアップ取れたら、ファイルを削除したいのですが、この処理は、JAVAでは可能なのでしょうか?
それとも、外部のコマンド(シェル等)を呼び出して処理した方が早いのでしょうか?

【開発環境】
RedHat7.1/apache1.3.26/tomcat3.2.3/ant1.4.1/jdk1.3.1

【ディレクトリ】
/home/test/data/001.csv
/home/test/data/002.csv ←複数存在する

/home/test/data_backup/今日の日付ディレクトリ/001.csv
/home/test/data_backup/今日の日付ディレクトリ/002.csv

宜しくお願い致します。
tarnwo
ベテラン
会議室デビュー日: 2002/10/25
投稿数: 58
投稿日時: 2002-11-22 20:29
引用:

あるディレクトリに入っている、CSVファイルをDBに登録するプログラムを作成しております。登録が問題なかったら、違うディレクトリ(今日の日付のディレクトリ)を作成して、CSVファイルをバックアップとり、バックアップ取れたら、ファイルを削除したいのですが、この処理は、JAVAでは可能なのでしょうか?
それとも、外部のコマンド(シェル等)を呼び出して処理した方が早いのでしょうか?



可能かどうかで言えば可能です。

引用:

【ディレクトリ】
/home/test/data/001.csv
/home/test/data/002.csv ←複数存在する

/home/test/data_backup/今日の日付ディレクトリ/001.csv
/home/test/data_backup/今日の日付ディレクトリ/002.csv



何も考えずにプログラムを組み立てますと,
1.指定したディレクトリ以下のCSVファイルの一覧を取得
2.取得したCSVのデータをDBに登録
3.バックアップディレクトリにコピー
4.元のファイルを削除

一覧を取得した後は,2〜4の繰り返しで済むのではないでしょうか。
みーちく
大ベテラン
会議室デビュー日: 2002/08/29
投稿数: 131
投稿日時: 2002-11-25 10:13
tarnwoさん

返信ありがとうございます。

コード:
1.指定したディレクトリ以下のCSVファイルの一覧を取得 
2.取得したCSVのデータをDBに登録 
3.バックアップディレクトリにコピー 
4.元のファイルを削除 



1,2,はすでに作成していて、今動いています。
4もプログラム作成し、テストした結果良好でした。
3のコピーがよくわからないのですが。

StringBufferを使用して1行ずつ書き出して、違うファイルにするという事なんでしょうか?

pon
常連さん
会議室デビュー日: 2002/05/21
投稿数: 43
投稿日時: 2002-11-25 10:15
1.で取得したオブジェクトを別ファイルで吐き出せば良いのでは?
  キャッシュしていればの話ですが。
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2002-11-25 11:33
ponさん
> 1.で取得したオブジェクトを別ファイルで吐き出せば良いのでは?
1.でとってるのはファイルのリストですよね?

CSVそのものではないので吐き出したところで期待したものとは違うでしょう。


みーちくさん
> 3のコピーがよくわからないのですが。
> StringBufferを使用して1行ずつ書き出して、違うファイルにするという事なんでしょうか?

ファイルのコピー自体はいろいろなところで見かけるのではないでしょうか?
http://www.google.co.jp/search?q=Java+%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB+%E3%82%B3%E3%83%94%E3%83%BC&ie=UTF-8&oe=UTF-8&hl=ja&lr=
pon
常連さん
会議室デビュー日: 2002/05/21
投稿数: 43
投稿日時: 2002-11-25 11:58
>> 1.で取得したオブジェクトを別ファイルで吐き出せば良いのでは?
>1.でとってるのはファイルのリストですよね?

>CSVそのものではないので吐き出したところで期待したものとは違うでしょう。

おー。失礼しました。2ですね。
というか2にいたるどこかでできると思いますが。
t-wata
大ベテラン
会議室デビュー日: 2002/07/12
投稿数: 209
お住まい・勤務地: 東京
投稿日時: 2002-11-25 12:09
3.バックアップディレクトリにコピー
4.元のファイルを削除

はjava.io.File#renameToでできそうですが。
File orig = new File("/home/test/date/001.csv");
File backup = new File("/home/test/data_backup/" + DATE_STRING + "/001.csv");
orig.renameTo(backup);
みーちく
大ベテラン
会議室デビュー日: 2002/08/29
投稿数: 131
投稿日時: 2002-11-25 13:23
ponさん、まりりさん、t-wataさん

返信ありがとうございます。
いろいろやり方があるんですね。
t-wataさんのrenameTo()は簡単そうですね。
ちょっとやってみたいと思います。

コード:
File orig = new File("/home/test/date/001.csv"); 
File backup = new File("/home/test/data_backup/" + DATE_STRING + "/001.csv"); 
orig.renameTo(backup);



ファイルのコピーとか削除はJAVAでも出来ることがわかりました。
実際、こういう処理はJAVAでやった方が良いのでしょうか?
私自身、シェルは書いたことがないのですが、そちらの方が簡単なのでしょうか?

スキルアップ/キャリアアップ(JOB@IT)