ファイル保存時に、ファイル名に自動的に連番を付与するには?

解決


KATO  2010-04-05 11:15:14  No: 146788

ボタンを押してファイルを決められたフォルダに保存する処理で、ファイル名に自動的に連番(01, 02, 03…)を付与するようにするには、どのように記述すればよいのでしょうか?
初心者なので、よろしくお願いします。


魔界の仮面弁士  2010-04-05 18:35:24  No: 146789

01.TXT, 02.TXT, 03.TXT のようにしたいのか
File.01, File.02, File.03 のようにしたいのか
File01.JPG, File02.JPG, File03.JPG のようにしたいのか
また、99 まで到達後はどうしたいのかなど、細かいところが
良く分かりませんが…とりあえず、VB2008 だとこんな感じ。

これにより、C:\Sample\01.TXT が作成されます。
(01.TXT が既にあった場合には 02.TXT が生成されます)

'Imports System
'Imports System.IO
'Imports System.Text

'保存させるテキストデータ
Dim contents As String = "一行目" & vbNewLine & "二行目"

'保存先のフォルダ
Dim folderName As String = "C:\Sample\"

'空き連番を探してファイル名を取得
Dim getFileName = Function(i As Integer) Path.Combine(folderName, i.ToString("00") & ".TXT")
Dim firstIndex = Enumerable.Range(1, 99).First(Function(i) Not File.Exists(getFileName(i)))

'保存処理
Dim fullPath As String = getFileName(firstIndex)
File.WriteAllText(fullPath, contents, Encoding.GetEncoding("Shift_JIS"))


KATO  2010-04-12 08:07:37  No: 146790

魔界の仮面弁士さんありがとうございます。
問題が解決しました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加