8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TypeScriptでファイル、ディレクトリ検索

Posted at

目的

TypeScriptでファイル、ディレクトリ検索を行うプログラムの備忘録。
Node.jsで検索すれば有益な情報は見つけられますし書き方ほぼ同一ですが、
TypeScriptで逆引き検索している方など、お役に立てれば幸いです。

概要

対象のディレクトリを指定し、サブディレクトリ含めて指定した拡張子のファイルを一覧として出力する。

npm インストール

ファイル検索、ディレクトリ検索に必要なモジュールをインストール
npm install --save @types/node

サンプルコード


import * as fs from "fs";
import * as path from "path";

// 検索したいディレクトリ
var seekBaseDir = "C:\\Users\\";
// 対象ファイルの拡張子
var extFilter = "sln";

function extension(element: string) {
    var extName = path.extname(element);
    return extName === '.' + extFilter;
};

function seekDir(dirpath: string) {
    fs.readdir(dirpath, function (err, list) {
        if (list !== undefined) {
            list.filter(extension).forEach(function (value) {
                console.log(dirpath + "\\" + value);
            });

            list.forEach(function (value) {
                let nextDir: string = dirpath + "\\" + value;
                if (fs.statSync(nextDir).isDirectory()) {
                    seekDir(nextDir);
                }
            });
        }
    });
}
// 検索開始
seekDir(seekBaseDir);

結果
C:\Users\YFurugen\Documents\wpf\based\XamDataGrid\Simple\Sample.sln
C:\Users\YFurugen\Documents\wpf\based\XamGrid\Simple\Sample\Sample.sln
C:\Users\YFurugen\Documents\xamarin\BlueMonkey\client\BlueMonkey\BlueMonkey.sln
C:\Users\YFurugen\Documents\xamarin\BlueMonkey\server\csharp\BlueMonkey.MobileApp\BlueMonkey.MobileApp.sln

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?