【UWSC】フォルダにあるファイルのパスをすべて取得する

この記事について

環境Windows、UWSC、コマンドプロンプト
目的フォルダにあるファイルのパスをすべて取得する
結果GETDIRで取得しGETDIR_FILES配列を展開する。サブフォルダも欲しければdir /b /a-d /s

UWSCでファイル名を取得するには、「GETDIR」を用いる。

フォルダにあるすべてのファイルパスを取得するサンプルコード

//取得した情報の保存先とファイル名
//保存先を実行ファイルと違うフォルダにする場合は、フルパス
fid = FOPEN("info.txt",F_WRITE) //前の情報は消去して書き込む

PATH = INPUT("取得するフォルダを入力して下さい","C:\")

NUM = GETDIR(PATH) //ファイルの数だけならNUM

//配列を展開
FOR A = 0 TO LENGTH(GETDIR_FILES) - 1

fileName = GETDIR_FILES[A] //ファイル名

FPUT(fid,PATH + "\" + fileName) //ファイルの書き込み

NEXT

FCLOSE(fid)

サブフォルダの情報も取得したいときは、コマンドプロンプトのdirコマンドを使うといい。

//カレントディレクトリの情報を出力

CMDSTR  = "dir /b /a-d /s > C:¥Users¥info.txt"

DOSCMD(CMDSTR,FALSE,TRUE)

//C:¥Windowsの情報を出力

CMDSTR  = "dir C:¥Windows /b /a-d /s > C:¥Users¥info.txt"

DOSCMD(CMDSTR,FALSE,TRUE)

オプションの説明

/b → ファイル名またはディレクトリ名のみ表示。最終更新日などの情報はなし。
/a-d → ディレクトリ以外のみ表示。
/s → サブディレクトリに含まれるファイルやディレクトリも全て表示。

関連記事

タイトルとURLをコピーしました