フォルダー内に保存されているすべてのファイルを別フォルダーにコピーする
2021/08/24
方法
フォルダーに保存されているすべてのファイルを別フォルダーにコピーするには、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