
ファイル名を日付とその日の中の通し番号にしたいと思っています。
例えば2009/07/17日だったらファイル名を
20090717+その日の中の通し番号とする。
日付をファイル名にするところまではできたのですが「その日の中の
通し番号とする」部分がわかりませんので教えていただきたいのですが。
import java.text.SimpleDateFormat;
import java.util.Date;
public class CreateFileName {
public static void main(String args[]){
Date date1 = new Date();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
//ファイル名は日付とその日の中の通し番号
String fileName = sdf1.format(date1).toString()+".pdf";
System.out.println(fileName);
}
}
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
ちょと補足で
//大量にやるならStringBuilderを使うほうがいい
String fileName = datePrefix + DELIM + currentId + ".pdf";
File file = new File(fileName);
assert !(file.exists());
System.out.println(fileName);
}//main()
までやって、java -eaで試しに実行するとちゃんと動いてるかわかります!(無責任ですみません(^^;))
No.3
- 回答日時:
ディレクトリ走査が一番順当かと。
テストしてないんで動かなかったらすみません(^^;)
import java.text.SimpleDateFormat;
import java.util.*;
import org.apache.commons.io.filefilter.*; //apache commonsIOが必要
public class CreateFileName {
private static final String DELIM = "-"; //デリミタ
private static final String DATE_FORMAT = "yyyyMMdd";
public static void main(String args[]){
String datePrefix = calcPrefix();
int lastId = findLastId(datePrefix);
int currentId = lastId++;
//大量にやるならStringBuilderを使うほうがいい
String fileName = datePrefix + DELIM + currentId + ".pdf";
System.out.println(fileName);
}//main()
private static String calcPrefix(){
Date date1 = new Date();
SimpleDateFormat sdf1 = new SimpleDateFormat(DATE_FORMAT);
return sdf1.format(date1);
}//calcPrefix()
private static int findLastId(String datePrefix){
File dir = new File(".");
FileFilter fileFilter = new RegexFileFilter("^"+datePrefix+DELIM+"[0-9]+"+".pdf");
List<String> fileList = Arrays.asList(fileFilter);
//1つも見つからなかったら、IDは0
if(fileList.isEmpty()){
return String.valueOf(0);
}else{
//String型の自然順序と逆順でソート(一番大きいものが前)
Collections.sort(fileList, Collections.reverseOrder());
String largestFileName = fileList.get(0);
}
//Idを取り出す
Scanner scanner = new Scanner(largestFileName).useDelimiter(DELIM+"|"+".");
//assert文はデバッグ用
String actualDatePrefix = scanner.next();
assert actualDatePrefix.equals(datePrefix);
assert scanner.hasNextInt();
int lastId = scanner.nextInt;
String remains = scanner.next();
assert remains.equals("pdf");
assert !(scanner.hasNext());
scanner.close();
return lastId;
}//findLastId()
}//class
No.2
- 回答日時:
ファイルに最大値を保存しておいて、「読み込んだ値 + 1」 とする。
もちろん、最大値を保存したファイルの値も +1する。
日付が変わったらリセット。
アクセスカウンタなどでよく使う手です。
ファイル操作の場合、別スレッドなどからの書き込みにより、
ファイルがバッティングしたり、最大値を保存しているファイルを
取り合いになったり・・・
ファイル操作はロックやら例外処理やら、気を遣いますね。
No.1
- 回答日時:
ずっと動作しているプログラムならば内部の変数をカウントすることで出来そうですが、そうでないとなるとなかなか面倒ですね。
ファイルを作成するフォルダ内の本日日付に該当するファイル一覧を抽出し、最大+1のファイル名とする、とか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル2019でPDFファイル名に枝番号をつけたい。 アクティブワークシートを印刷した後の処理とし 4 2023/06/06 21:00
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) 【マクロ】ファイル名の日付によって、保管するフォルダを、自動選択したい 4 2023/08/16 11:24
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Java java final 1 2022/06/10 22:49
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jdbcでinsert,delete,createをe...
-
プログラミングの問題です。大...
-
Googleログインボタンのデザイ...
-
JDONWROADER2のエラー修復
-
「main メソッドを持つクラスが...
-
Eclipse 動的プロジェクトで404...
-
正規表現について質問です。 カ...
-
スプレッドシートからリマイン...
-
googleスプレッドシートのスク...
-
googleスプレッドシートのGASに...
-
Verilogについて質問です。この...
-
論理回路設計をVerilogで行う問...
-
ゲーム開発の入門書を探しています
-
session,requestはjspで未定義...
-
サーブレットをapacheで公開す...
-
下記のリストならno002が含まれ...
-
is this even a thing?
-
JAの支部?地域の農協のカード...
-
えハミルトン路と全域木のちが...
-
CSV出力を画面から選択したデー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JDONWROADER2のエラー修復
-
Googleログインボタンのデザイ...
-
配列にnullを代入すると、null...
-
jdbcでinsert,delete,createをe...
-
「main メソッドを持つクラスが...
-
プログラミングの問題です。大...
-
eclipseで作ったプログラムを他...
-
正規表現について質問です。 カ...
-
Eclipse 動的プロジェクトで404...
-
マイクラでPythonのプログラミ...
-
jdk17.06のインストーラーが起...
-
自作Androidアプリのデータ引き...
-
直し方について教えて頂きたい...
-
eclipse実行ができない
-
サーブレットをapacheで公開す...
-
あんまりお料理しないのに台所...
-
CSV出力を画面から選択したデー...
-
次のhtml・cssでspan内の文字を...
-
問題作成のWebアプリの作り方を...
-
ゲーム開発の入門書を探しています
おすすめ情報