プログラムを書こう!

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

C#でディレクトリ情報を取得する。

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

f:id:paveway:20190914064630j:plain

目次

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

基礎からしっかり学ぶC#の教科書

基礎からしっかり学ぶC#の教科書

1. はじめに

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

目次へ

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

C#でディレクトリ情報を取得するには、DirectoryInfoクラスを使用します。
DirectoryInfoクラスの以下のプロパティで、ディレクトリに関する情報が取得または設定できます。

プロパティ名 内容
Attributes ディレクトリの属性を取得または設定します。
CreationTime ディレクトリの作成日時を取得または設定します。
CreationTimeUtc ディレクトリの作成日時を世界協定時刻(UTC)で取得または設定します。
Exists ディレクトリが存在するかどうかを示す値を取得します。
Extension ファイルの拡張子部分を表す文字列を取得します。
FullName ディレクトリの絶対パスを取得します。
LastAccessTime ディレクトリに最後にアクセスした時刻を取得または設定します。
LastAccessTimeUtc ディレクトリに最後にアクセスした時刻を世界協定時刻(UTC)で取得または設定します。
LastWriteTime ディレクトリに最後に書き込みがなされた時刻を取得または設定します。
LastWriteTimeUtc ディレクトリに最後に書き込みがなされた時刻を世界協定時刻(UTC)で取得または設定します。
Name ディレクトリの名前を取得します。
Parent 指定されたサブディレクトリの親ディレクトリを取得します。
Root ディレクトリのルート部分を取得します。

実装例

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

namespace CSharpDirectoryInfo
{
    class Program
    {
        static void Main(string[] args)
        {
            // カレントディレクトリを指定します。
            var path = ".";
            var directoryInfo = new DirectoryInfo(path);

            // ディレクトリが存在しない場合
            if (!directoryInfo.Exists)
            {
                Console.WriteLine($"{path} is not exits.");
                return;
            }

            // ディレクトリが存在する場合
            Console.WriteLine($"Name={directoryInfo.Name}");
            Console.WriteLine($"FullName={directoryInfo.FullName}");
            // Extensionプロパティは、ディレクトリに"."が含まれる場合、"."以下が拡張子として取得されます。
            Console.WriteLine($"Extension={directoryInfo.Extension}");
            Console.WriteLine($"CreationTime={directoryInfo.CreationTime}");
            Console.WriteLine($"CreationTimeUtc={directoryInfo.CreationTimeUtc}");
            Console.WriteLine($"LastAccessTime={directoryInfo.LastAccessTime}");
            Console.WriteLine($"LastAccessTimeUtc={directoryInfo.LastAccessTimeUtc}");
            Console.WriteLine($"LastWriteTime={directoryInfo.LastWriteTime}");
            Console.WriteLine($"LastWriteTimeUtc={directoryInfo.LastWriteTimeUtc}");
            // Attributesプロパティは、"Directory"が取得されます。
            Console.WriteLine($"Attributes={directoryInfo.Attributes}");
            Console.WriteLine($"Parent={directoryInfo.Parent}");
            // Rootプロパティは、ドライブ名(例 C:\)が取得されます。
            Console.WriteLine($"Root={directoryInfo.Root}");
        }
    }
}

API Reference
DirectoryInfo

目次へ

3. おわりに

前回

でファイル情報を取得したので、同じようにディレクトリ情報を取得する方法を調査しました。

新・標準プログラマーズライブラリ なるほどなっとく C#入門

新・標準プログラマーズライブラリ なるほどなっとく C#入門

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

目次へ


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

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

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

目次へ