TypeScript で、指定したディレクトリ内に存在するディレクトリやファイルのリストを取得する

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 オブジェクトで返却されます。

Node.js fs.readdirSync

その後、dirent.isDirectory() でディレクトリだけにフィルタリングします。 このdirent.isDirectory()メソッドは、direntオブジェクトの中身がディレクトリの場合に Trueを返却します。

Class: fs.Dirent

最後に 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==)

速攻でメモできる QuickNote リリースしました!

QuickNoteは動作が超軽量でサクサクかけるノートアプリです。一瞬の閃きを逃さずにノートを開き書き始めることができます。 アカウント登録も不要です。お試しあれ!

Excel操作をコマンドで! proBoarderExcel

Excelはマウスで操作するのが基本ですが、マウス操作に疲れてはいませんか? キーボードでExcel操作ができるようになるアプリです。オープンソースで無料です。

積み上げ! Daily Stack リリースしました!

Daily Stack は日々の積み上げを管理するToDoアプリです。過去の積み上げの振り返りだけでなく、ツイート機能もあります。 アカウント登録不要ですぐに使い始めることができます。

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱