この記事について
| 環境 | 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 → サブディレクトリに含まれるファイルやディレクトリも全て表示。
