フォルダー内に保存されているすべてのファイルを別フォルダーにコピーする

PowerBuilder Tips

方法

フォルダーに保存されているすべてのファイルを別フォルダーにコピーするには、BAT ファイルや Windows API を利用して行う方法があります。

以下の例では一時的に BAT ファイルを作成後、その BAT ファイルを Run 関数で実行し最後に BAT ファイルを削除しています。

【例】”C:\temp\from” に保存されているすべてのファイルを “C:\temp\to” にコピー

Integer li_filenum
String ls_from = "C:\temp\from\*.*"
String ls_to = "C:\temp\to\*.*"
String ls_bat = "copy.bat"
String ls_dir = "C:\temp\"

// BAT ファイルを作成
li_filenum = FileOpen(ls_dir + ls_bat, LineMode!, Write!, LockWrite!, Replace!)
FileWrite(li_filenum, "copy " + ls_from + " " + ls_to)
FileClose(li_filenum)
Sleep(2)

// BAT ファイルを実行
Run(ls_dir + ls_bat)
Sleep(2)

// BAT ファイルを削除
IF FileExists(ls_dir + ls_bat) THEN FileDelete(ls_dir + ls_bat)

また、ウィンドウに ListBox コントロールを配置して DirList 関数を呼び出し、取得したファイルに対して FileCopy 関数を呼び出すことで PowerBuilder の機能のみで同様の処理が可能です。

// ウィンドウにはリストボックス (lb_1) を配置

int li_count, i
String ls_from = "C:\temp\from\"
String ls_to = "C:\temp\to\"

// リストボックスを初期化
lb_1.Reset()

// フォルダー内のファイルを取得
lb_1.DirList(ls_from, 0)

// ファイルの件数を取得
li_count = lb_1.TotalItems()

// すべてのファイルをコピー
FOR i = 1 TO li_count
   FileCopy(ls_from + lb_1.Text(i), ls_to + lb_1.text(i))
NEXT

 

Tips情報

プロダクト :PowerBuilder

バージョン :2019R3

Tips 一覧を見る
PowerBuilder マイグレーション
PowerBuilder 2019 R3 日本語版リリース 紹介動画