スキップしてメイン コンテンツに移動

変更するファイルを読みこんで一括変換

ファイルを読み込んで一括変換するようにしました。

��=入力テキストは以下==
2004/04/251631 22009_01_19_22_34_10.wmv
2004/04/251635 22009_01_19_22_37_42.wmv
2004/04/25163632009_01_19_22_38_35.wmv
2004/04/25163732009_01_19_22_38_57.wmv
��=
��=JAVAの処理==
上記テキストを読み込んで日付部とファイル名部にわけて
ファイル名を日付の名前に変更して、更新日時を変更する。
��=JAVAはここから==
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package filerename;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Calendar;
/**
*
* @author nao
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
//setup initial variable
String folderpath = new String("C:\\Documents and Settings\\nao\\デスクトップ\\test\\");
String inputListFile = new String("test.txt");
//String BR = System.getProperty("line.separator");
//ファイルの読み込みと入力
try{
FileReader fr = new FileReader(folderpath+inputListFile);
BufferedReader br = new BufferedReader(fr);
//FileOutputStream fos = new FileOutputStream(folderpath+"rename_log.txt");
//OutputStreamWriter osw = new OutputStreamWriter(fos);
FileWriter fw = new FileWriter(folderpath+"rename_log.txt");
BufferedWriter bw = new BufferedWriter(fw);
String msg = "ファイル名変更ログメッセージの出力開始。";
bw.write(msg);
bw.newLine();
String inputString;
while((inputString = br.readLine()) != null){
System.out.println(inputString);
//String inputString = new String("2004/04/251631 2009_01_19_22_34_10.wmv");
//インプットのStringを整形
// "/"を削除
String afterReplace1 = inputString.replaceAll("/", "");
// 空白を削除
String afterReplace = afterReplace1.replaceAll(" ", "");
System.out.println("after replace string:"+afterReplace);
bw.write("after replace string:"+afterReplace);
bw.newLine();
if(afterReplace.length() < 36){
System.out.println("Input String is less than 36");
bw.write("Input String is less than 36");
bw.newLine();
}
else{
//最初から4文字目を抜き出す(年数部分)
String Syear = new String( afterReplace.substring( 0, 4 ) );
//5,6文字目を抜き出す(月部分)
String Smonth = new String( afterReplace.substring( 4, 6 ) );
//7,8文字目を抜き出す(日数部分)
String Sday = new String( afterReplace.substring( 6, 8 ) );
//9,10を抜き出す(時間部分)
String Shour = new String( afterReplace.substring( 8, 10 ) );
//11,12を抜き出す(分部分)
String Smin = new String( afterReplace.substring( 10, 12 ) );
//残りを抜き出す(元ファイル名)
String orgname = new String( afterReplace.substring( 13, 36 ) );
System.out.println("Year:"+Syear);
System.out.println("Month:"+Smonth);
System.out.println("Day:"+Sday);
System.out.println("Hour:"+Shour);
System.out.println("Min:"+Smin);
//StringをInegerへ変換
int year = Integer.parseInt(Syear);
int month = Integer.parseInt(Smonth);
int day = Integer.parseInt(Sday);
int hour = Integer.parseInt(Shour);
int min = Integer.parseInt(Smin) ;
System.out.println("元ファイル名:"+orgname);
bw.write("元ファイル名:"+orgname);
bw.newLine();
//変更前ファイル名
File orgFile = new File(folderpath + orgname);
boolean orgfileext = orgFile.exists();
System.out.println(orgFile + (orgfileext? " is found " : " is missing "));
//変更後のファイル名
StringBuffer filename = new StringBuffer("Z5_"+Syear+"_"+Smonth+"_"+Sday+"_"+Shour+"_"+Smin);
//変更後のファイル名がすでにないか確認して変更
System.out.println("Rename candidate is "+filename+".wmv");
while((new File(folderpath + filename+".wmv")).exists()){
System.out.println(folderpath + filename +" exists");
min = min + 1;
filename.replace(14,16, String.valueOf(min) );
}
File newFile = new File(folderpath + filename+".wmv");
if(orgfileext){
System.out.println("Start Rename to "+newFile.getName()+" from "+orgFile.getName());
bw.write("Start Rename to "+newFile.getName()+" from "+orgFile.getName());
bw.newLine();
boolean rename = orgFile.renameTo(newFile);
if(rename){
//ファイル名変更成功
System.out.println("Rename Successful");
bw.write("Rename Successful");
bw.newLine();
//日付を設定 (月は設定したい月-1が必要)
Calendar newcalendar = Calendar.getInstance();
newcalendar.set(year, month-1, day, hour, min, 00);
System.out.println(newcalendar.getTime());
//更新日付を変更
boolean lastTime=newFile.setLastModified(newcalendar.getTimeInMillis());
System.out.println("Last Modified: "+lastTime);
System.out.println(newFile.lastModified());
}
else{
//ファイル名変更失敗
System.out.println("Fail to rename");
bw.write("Fail to rename");
bw.newLine();
}
}
else{
boolean rename = false;
System.out.println(orgFile +" not exists.");
bw.write(orgFile +" not exists.");
bw.newLine();
}
}
}
br.close();
fr.close();
bw.close();
fw.close();
System.out.println("");
System.out.println("読み込み終了");
}
catch(IOException e){
e.printStackTrace();
System.out.println("ファイル入出力で不正な処理が発生しました.");
System.exit(1);
}
}
}

コメント

このブログの人気の投稿

川上村の中井渓谷自然塾

ここからしばらくはライフログとして更新が滞っていた夏以降のイベントについて 海の日に川に行ってきました。 大和郡山市からは約1時間半で到着できる川上村の中井渓谷自然塾。 メインはアマゴのつかみ取り。そしてBBQ。1日6000円で楽しめます。 川にもつかって、なぜかおたまじゃくしをとったりと大満足。 帰りはあきのの湯の温泉で汗を流して帰りました。 川上村、いいとこです。 中井渓谷自然塾の場所 こんな場所 BBQできるとこ。屋根付き BBQの下の川で、あまごの釣りもできる (ただ放流されてもあまり釣れない感じ) つかみどりのあまご。幼稚園児でも意外とつかめる 帰りによった、あきのの湯

Pinarello X1 ホワイトを購入

 友達としまなみ海道やTANTAN LONGライドに行ったりしているけど、あとからロードバイク始めた友達の方が圧倒的に早く一緒に走れないので、今回機材ドーピングを実施。 前々から30万円程度でエントリーのカーボン&105に乗れたらなーと思っていたが、昨今の円安により価格上昇。 で1年ほど前にはPinarelloのParisのブルーがめちゃくちゃいいんじゃない?と思って購入直前まで進んだが、子供が私立大学に行くことになって一旦断念。 ただ、今は横浜に単身赴任中なので、今のOrebaを横浜に持っていってトレーニング用に使い、関西帰ってきたときはロングライドに行く、という願望が本格化。 Parisの後継がX1とかX3になって、なんだかなー、XシリーズよりParisの名前の方がかっこいいなーと思っていた。 ( https://www.riogrande.co.jp/pinarello_opera/pinarello2022-2023/x1.php へのリンク) 買うならCerveloのCaredoniaがCervelo の割にお手頃で、これを買おう!と思っていたが、105Di2もいいなーとか思っていたら、Soloistのエアロフレームかっこいいから105の機械式でもいいから、これ買おーとか思ったり。そして色はSky blueがいいんだけど、そんなの最近出てこないから(ブラック強し)、ホワイトで黒ロゴだとかっこいいなーと思っていた。 で、Orbeaでお世話になっているお店のサイトみたり、最近はY's roadのサイトを見て最新情報をチェックしてたら、以下のX1購入記事を発見。 https://ameblo.jp/guell-bicycle/entry-12829804724.html これはホイールがグレードアップ してるからちょっと違うけどX1の白めちゃかっこいいやんー! しかも、よくよく考えたらXって俺みたいなやつのためにある自転車。でピナレロはなんだかんだいって、日本でもしっかり自転車供給している。 まあでも様子見と思ってたら以下の謎キャンペーン始まる。 https://ameblo.jp/guell-bicycle/entry-12830828372.html 実はコロナで急増した自転車ブームも一段落し、メーカーでは在庫が出ちゃっているらしいので、需要喚起のた

初アピタ

アピタには毎週のように行っていますが、今日は初めて長男と二人で自転車で行ってきました。 黄砂と風の吹く中でしたが、無事買い物してこれました 写真はたまたま見たアピタ内でのフルートの演奏会です 可愛く、若かったので思わず見てしまいました。。。