プログラムを書こう!

実務や自作アプリ開発で習得した役に立つソフトウェア技術情報を発信するブログ

C#でディレクトリ内のファイル一覧を取得する。

この記事は2019年08月13日に投稿しました。

f:id:paveway:20190914064630j:plain

目次

  1. はじめに
  2. C#でディレクトリ一覧を取得する
  3. おわりに

独習C# 第3版

独習C# 第3版

  • 作者: ハーバート・シルト,エディフィストラーニング株式会社矢嶋聡
  • 出版社/メーカー: 翔泳社
  • 発売日: 2010/12/03
  • メディア: 大型本
  • 購入: 5人 クリック: 55回
  • この商品を含むブログ (6件) を見る

1. はじめに

こんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。
今回は業務で使用しているC#でディレクトリ一覧を取得する方法についてです。

目次へ

2. C#でディレクトリ一覧を取得する

C#でディレクトリ一覧を取得するには、DirectoryクラスのGetFilesメソッドを使用します。

書式

string[] GetFiles(string path)  
string[] GetFiles(string path, string searchPattern)
string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption)

引数

path
検索するディレクトリの相対パスまたは絶対パス。
この文字列の大文字と小文字は区別されません。

searchPattern

path 内のファイル名と対応させる検索文字列。
このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。

searchOption

検索操作にすべてのサブディレクトリを含めるのか、または現在のディレクトリのみを含めるのかを指定する列挙値の 1 つ。
以下の定数が指定できます。

定数名 内容
AllDirectories 1 検索操作に現在のディレクトリとすべてのサブディレクトリを含めます。
このオプションは、検索範囲に、マウントされたドライブやシンボリック リンクのようなリパース ポイントを含めます。
TopDirectoryOnly 0 検索操作に現在のディレクトリのみを含めます。

戻値

指定したディレクトリ内の指定した検索パターンに一致するファイルの完全名 (パスを含む) の配列。
または、ファイルが見つからない場合は空の配列。

実装例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace CSharpGetFiles
{
    class Program
    {
        static void Main(string[] args)
        {
            // 検索するディレクトリにカレントディレクトリを指定します。
            string path = ".";

            // 指定したディレクトリのファイル一覧を取得します。
            var files = Directory.GetFiles(path);

            // 取得したファイル名の一覧をコンソールに表示します。
            foreach (var file in files)
            {
                Console.WriteLine($"{file}");
            }
        }
    }
}

API Reference
Directoryクラス

GetFilesメソッド

SearchOption定数

目次へ

3. おわりに

とあるディレクトリの特定のファイルを全て検索する必要があり、その方法を調査しました。

確かな力が身につくC#「超」入門 (Informatics&IDEA)

確かな力が身につくC#「超」入門 (Informatics&IDEA)

紹介している一部の記事のコードはGitlabで公開しています。
興味のある方は覗いてみてください。

目次へ


私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。
弊社製品のハイブリッドOS Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。
私自身はiOSモバイルアプリウィンドウズアプリを得意としております。
ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。

また一緒に働きたい技術者の方も随時募集中です。
興味がありましたらご連絡ください。

EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688

目次へ