TypeScriptでNodeJSを使い、指定したディレクトリ内に存在する ディレクトリやファイルのリストを取得してみたいと思います。
ディレクトリパスの中に存在しているディレクトリを取得する
fs.readdirSync
メソッドを使用してディレクトリを参照し、ディレクトリのみにフィルタリングして リストを取得します。
import {readdirSync} from "fs"
export function getDirectoryList(dirPath:string):string[] {
let dirList: string[] = new Array();
dirList = readdirSync(dirPath, {
withFileTypes: true,
}).filter(dirent => dirent.isDirectory())
.map(dirent => dirent.name);
return dirList;
}
引数にディレクトリパスを指定します。返り値として、ディレクトリ名が格納された文字列配列を返却します。
fs.readdirSync
を使用して、ディレクトリ内のリストを取得します。 このとき、withFileTypes:true
をオプションで指定することにより、fs.Dirent
オブジェクトで返却されます。
その後、dirent.isDirectory()
でディレクトリだけにフィルタリングします。 このdirent.isDirectory()
メソッドは、dirent
オブジェクトの中身がディレクトリの場合に True
を返却します。
最後に map
メソッドでディレクトリ名を取得し、配列に格納します。
ディレクトリパスの中に存在しているファイルを取得する
基本的には、上述のgetDirectoryList
メソッドと同じで、違いとしては、 フィルタリングの箇所をdirent.isDirectory()
から dirent.isFile()
に変更しています。
これにより、ファイルのみのリストを文字列配列として返却しています。
import {readdirSync} from "fs"
export function getFileList(dirPath:string):string[] {
let dirList: string[] = new Array();
dirList = readdirSync(dirPath, {
withFileTypes: true,
}).filter(dirent => dirent.isFile())
.map(dirent => dirent.name);
return dirList;
}
実践TypeScript【電子書籍】[ 吉井健文 ]
価格:3726円 (2019/7/23時点)
楽天で購入
](https://hb.afl.rakuten.co.jp/hgc/18648e8b.7d833591.18648e8c.ed1bab3c/?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Frakutenkobo-ebooks%2F5456816fd8833397a6aa8b80647873ad%2F%3Fscid%3Daf_pc_bbtn&m=http%3A%2F%2Fm.rakuten.co.jp%2Frakutenkobo-ebooks%2Fi%2F18341447%2F%3Fscid%3Daf_pc_bbtn&link_type=picttext&ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJwaWN0dGV4dCIsInNpemUiOiIyNDB4MjQwIiwibmFtIjoxLCJuYW1wIjoicmlnaHQiLCJjb20iOjEsImNvbXAiOiJkb3duIiwicHJpY2UiOjEsImJvciI6MSwiY29sIjoxLCJiYnRuIjoxfQ==)
コメント