package com;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;import org.apache.commons.io.FileUtils;public class CopyFile { public static void main(String[] args) throws IOException {
List fileList = getAllFilePathByList();
Date date = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmm");
String subName = String.valueOf(df.format(date));
String prefix = "srclist\\\\"+subName+"\\\\";
int num = copyFile(fileList, prefix);
System.out.println("Copying was Finished-->Total is "+num+" files");
} private static List getAllFilePathByList() throws IOException {
String line = null;
BufferedReader in = null;
List ls = new ArrayList(); in = new BufferedReader(new InputStreamReader(new FileInputStream("c:/srclist.txt"), "MS932"));
line = in.readLine();
while (line != null) {
line = in.readLine();
ls.add(line);
}
return ls;
} private static int copyFile(List fileList, String sabunlistName) {
int j =0;
for (int i = 0; i < fileList.size(); i++) {
String fileName = (String) fileList.get(i); if (fileName == null || "".equals(fileName.trim())){
continue;
}
if(!new File(fileName).exists()){
System.out.println("The "+i+" Line File is not exists-->"+fileName);
continue;
}
String targetFileName = fileName.replaceFirst("C:\\\\", "C:\\\\"+ sabunlistName);
fileName = fileName.replaceAll("\\\\", "/");
targetFileName = targetFileName.replaceAll("\\\\", "/");
try {
FileUtils.copyFile(new File(fileName), new File(targetFileName));
j++;
} catch (Exception e) {
System.out.println("The " + i + " Line file is cant be copyed-->" + fileName);
}
}
return j;
}
}
//////////////////////////////////// 分割线 //////////////////////////////////
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;import org.apache.commons.io.FileUtils;public class CopyFile { public static void main(String[] args) throws IOException {
List fileList = getAllFilePathByList();
Date date = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmm");
String subName = String.valueOf(df.format(date));
String prefix = "srclist\\\\"+subName+"\\\\";
int num = copyFile(fileList, prefix);
System.out.println("Copying was Finished-->Total is "+num+" files");
} private static List getAllFilePathByList() throws IOException {
String line = null;
BufferedReader in = null;
List ls = new ArrayList(); in = new BufferedReader(new InputStreamReader(new FileInputStream("c:/srclist.txt"), "MS932"));
line = in.readLine();
while (line != null) {
line = in.readLine();
ls.add(line);
}
return ls;
} private static int copyFile(List fileList, String sabunlistName) {
int j =0;
for (int i = 0; i < fileList.size(); i++) {
String fileName = (String) fileList.get(i); if (fileName == null || "".equals(fileName.trim())){
continue;
}
if(!new File(fileName).exists()){
System.out.println("The "+i+" Line File is not exists-->"+fileName);
continue;
}
String targetFileName = fileName.replaceFirst("C:\\\\", "C:\\\\"+ sabunlistName);
fileName = fileName.replaceAll("\\\\", "/");
targetFileName = targetFileName.replaceAll("\\\\", "/");
try {
FileUtils.copyFile(new File(fileName), new File(targetFileName));
j++;
} catch (Exception e) {
System.out.println("The " + i + " Line file is cant be copyed-->" + fileName);
}
}
return j;
}
}
//////////////////////////////////// 分割线 //////////////////////////////////
import java.text.DecimalFormat;
import java.util.GregorianCalendar;
import java.math.BigDecimal;/**
* 日付編集関連関数群
*/public class DateFormat { private DateFormat() {
} /**
* 日付編集を行う<br>
* フォーマットは java.text.SimpleDateFormatクラスに準じる。<br>
* <P><STRONG>時刻フォーマット構文:</STRONG>
* <P>時刻フォーマットを指定するには、<EM>時刻パターン</EM>文字列を使用します。このパターンでは、すべての ASCII
* 文字がパターン文字として使用されます。この定義は次のとおりです。
* <table border="1">
* <tr><th>年号</th><th>意味</th><th> 表示</th><th>例</th></tr>
* <tr><td>y</td><td>年</td> <td>(数値)</td><td>1996</td></tr>
* <tr><td>M</td><td>月</td><td>(テキストと数値)</td><td>July & 07</td></tr>
* <tr><td>d</td><td>日</td><td>(数値)</td><td>10</td></tr>
* <tr><td>g</td><td>元号の頭文字</td><td>(テキスト)</td><td>M, T, S, H</td></tr>
* <tr><td>gg</td><td>元号の先頭の1文字の漢字</td><td>(テキスト)</td><td>明、大、昭、平</td></tr>
* <tr><td>ggg</td><td>元号</td><td>(テキスト)</td><td>明治、大正、昭和、平成</td></tr>
* <tr><td>e</td><td>元号に基づく和暦年</td><td>(テキスト)</td><td>1(1桁でも先頭に0は付かない)</td></tr>
* <tr><td>ee</td><td>元号に基づく和暦年</td><td>(テキスト)</td><td>05(常に2桁)</td></tr>
* </table>
* @param pattern 編集フォーマット指定
* @param date YYYYMMDDかまたはYYYYMM形式の日付をあらわす文字列
* @return 編集後文字列
*/
public static String format(String pattern, String date) {
if(date == null || pattern == null) throw new IllegalArgumentException("パラメーターNULL");
int year = 0;
int month = 0;
int day = 0;
int hour = 0;
int minute = 0;
int second = 0;
if(date.length() == 6) {
year = Integer.parseInt(date.substring(0, 4));
month = Integer.parseInt(date.substring(4, 6)) - 1;
day = 1;
} else if(date.length() == 8) {
year = Integer.parseInt(date.substring(0, 4));
month = Integer.parseInt(date.substring(4, 6)) - 1;
day = Integer.parseInt(date.substring(6, 8));
} else if(date.length() == 14) {
year = Integer.parseInt(date.substring(0, 4));
month = Integer.parseInt(date.substring(4, 6)) - 1;
day = Integer.parseInt(date.substring(6, 8));
hour = Integer.parseInt(date.substring(8, 10));
minute = Integer.parseInt(date.substring(10, 12));
second = Integer.parseInt(date.substring(12, 14));
} else {
throw new IllegalArgumentException("日付指定エラー[" + date + "]");
}
GregorianCalendar gc = new GregorianCalendar(year, month, day, hour, minute, second);
DateEx de = new DateEx(year, month, day);
pattern = replaceWareki(pattern, de); SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(gc.getTime()); } private static String replaceWareki(String pattern, DateEx de) {
StringBuffer sb = null;
int i = 0;
while(true) {
int p = pattern.indexOf("ggg");
if(p == -1) {
break;
} else {
sb = new StringBuffer(pattern);
String tmp = sb.toString();
sb = sb.replace(p, (p + 3), de.getGengoKanji());
pattern = sb.toString();
i=p;
}
i++;
if(i > sb.length()) {
break;
}
} i = 0;
while(true) {
int p = pattern.indexOf("gg");
if(p == -1) {
break;
} else {
sb = new StringBuffer(pattern);
String tmp = sb.toString();
sb = sb.replace(p, (p + 2), de.getGengoKanjiHalf());
pattern = sb.toString();
i=p;
}
i++;
if(i > sb.length()) {
break;
}
} i = 0;
while(true) {
int p = pattern.indexOf("g");
if(p == -1) {
break;
} else {
sb = new StringBuffer(pattern);
String tmp = sb.toString();
sb = sb.replace(p, (p + 1), ("'" + de.getGengoCode() + "'"));
pattern = sb.toString();
i=p;
}
i++;
if(i > sb.length()) {
break;
}
} long warekiYear = (long)de.getYearWareki();
DecimalFormat df = new DecimalFormat("00");
String strWarekiYear = df.format(warekiYear);
i = 0;
while(true) {
int p = pattern.indexOf("ee");
if(p == -1) {
break;
} else {
sb = new StringBuffer(pattern);
String tmp = sb.toString();
sb = sb.replace(p, (p + 2), strWarekiYear);
pattern = sb.toString();
i=p;
}
i++;
if(i > sb.length()) {
break;
}
} df = new DecimalFormat("#0");
strWarekiYear = df.format(warekiYear);
i = 0;
while(true) {
int p = pattern.indexOf("e");
if(p == -1) {
break;
} else {
sb = new StringBuffer(pattern);
String tmp = sb.toString();
sb = sb.replace(p, (p + 1), strWarekiYear);
pattern = sb.toString();
i=p;
}
i++;
if(i > sb.length()) {
break;
}
} return pattern;
}
* 期間編集を行う<br>
* @param pattern 編集フォーマット指定
* @param date YYYYMM形式の年月をあらわす文字列
* @param startTsukisu 請求期間開始月数
* @param startKbn 請求期間開始区分(1~31,EE:月末)
* @param endTsukisu 請求期間終了月数
* @param endKbn 請求期間終了区分(1~31,EE:月末)
* @return 編集後文字列
*/
public static String formatKikan(String pattern,
String date,
BigDecimal startTsukisu,
String startKbn,
BigDecimal endTsukisu,
String endKbn) {
if(date == null || pattern == null) throw new IllegalArgumentException("パラメーターNULL");
if (startTsukisu == null || startKbn == null || endTsukisu == null || endKbn == null) {
//請求期間が来ない場合には値を入れずに返す
return pattern;
}
String displayString = pattern; if(date.length() == 6) {
date = date + "01";
} else {
throw new IllegalArgumentException("日付指定エラー[" + date + "]");
}
//開始用年月日
String startDate = DateFunction.getRelativeMonth(date,startTsukisu.intValue());
if ((startKbn != null) && (startKbn.equals("EE"))) {
startDate = DateFunction.getEndOfMonth(startDate.substring(0,4),startDate.substring(4,6));
}
else {
if ((startKbn != null) && (startKbn.length() == 1)) {
startKbn = "0" + startKbn;
}
startDate = startDate.substring(0,6) + startKbn;
}
//終了用年月日
String endDate = DateFunction.getRelativeMonth(date,endTsukisu.intValue());
if ((endKbn != null) && (endKbn.equals("EE"))) {
endDate = DateFunction.getEndOfMonth(endDate.substring(0,4),endDate.substring(4,6));
}
else {
if ((endKbn != null) && (endKbn.length() == 1)) {
endKbn = "0" + endKbn;
}
endDate = endDate.substring(0,6) + endKbn;
} //文字列置換を行う
String beforeString = null;
String afterString = null;
if (displayString.indexOf("YY") != -1) {
//開始年の置換
beforeString = displayString.substring(0,displayString.indexOf("YY"));
afterString = displayString.substring(displayString.indexOf("YY") + 2);
displayString = beforeString
+ startDate.substring(2,4)
+ afterString;
}
if (displayString.indexOf("MM") != -1) {
//開始月の置換
beforeString = displayString.substring(0,displayString.indexOf("MM"));
afterString = displayString.substring(displayString.indexOf("MM") + 2);
displayString = beforeString
+ startDate.substring(4,6)
+ afterString;
}
if (displayString.indexOf("DD") != -1) {
//開始日の置換
beforeString = displayString.substring(0,displayString.indexOf("DD"));
afterString = displayString.substring(displayString.indexOf("DD") + 2);
displayString = beforeString
+ startDate.substring(6,8)
+ afterString;
}
if (displayString.indexOf("YY") != -1) {
//終了年の置換
beforeString = displayString.substring(0,displayString.indexOf("YY"));
afterString = displayString.substring(displayString.indexOf("YY") + 2);
displayString = beforeString
+ endDate.substring(2,4)
+ afterString;
}
if (displayString.indexOf("MM") != -1) {
//終了月の置換
beforeString = displayString.substring(0,displayString.indexOf("MM"));
afterString = displayString.substring(displayString.indexOf("MM") + 2);
displayString = beforeString
+ endDate.substring(4,6)
+ afterString;
}
if (displayString.indexOf("DD") != -1) {
//終了日の置換
beforeString = displayString.substring(0,displayString.indexOf("DD"));
afterString = displayString.substring(displayString.indexOf("DD") + 2);
displayString = beforeString
+ endDate.substring(6,8)
+ afterString;
} return displayString;
}}
////////////////////////////////// 分割线 //////////////////////////////////////////