「C#.NET」海の神が解説する「FileInfo」クラスの効率的な使い方

2024年11月10日日曜日

ファイル操作

t f B! P L

名前空間System.IO

自己紹介

ようこそ、旅人よ。我は海の神にして、波と情報の流れを司る者である。今日は、.NETにおける「FileInfo」という存在について語ろう。これが何たるか、どう使いこなせばよいかを、海のごとく広大な知識で解説するゆえ、安心して聞いてほしい。

基本機能

FileInfoクラスは、ファイルの情報を取得し、操作するために用いられるクラスじゃ。ファイルの属性、作成日時、更新日時、サイズなどを調べられるだけでなく、コピー、移動、削除といった操作も可能じゃ。要は、ファイルに関する万能な道具と思えばよい。

ファイルの属性を取得する

FileInfoクラスは、ファイルの「属性」に関する情報を簡単に取得できる。この属性には、読み取り専用や隠しファイルといった情報が含まれる。これを使えば、特定の条件に一致するファイルだけを処理するといったこともできるぞ。

ファイルの操作(コピーや削除など)

ファイルをコピーしたり、削除したりする操作も、このFileInfoの得意分野じゃ。コピー先を指定したり、ファイルが存在しない場合にエラーを回避する方法も簡単に実現できる。海の神たる私のように、流れるような操作が可能じゃな。

パフォーマンスの注意点

FileInfoは、インスタンスを生成するたびにファイルの情報を取得するため、大量のファイルを扱う場合には注意が必要じゃ。場合によっては、ファイルの情報を直接取得する静的メソッド(例えば、Fileクラスのメソッド)を使ったほうが効率的な場合もある。用途に応じて使い分けることが肝要じゃ。

コレクション操作の注意点

昔はArrayListなどを使ったファイル情報の管理も行われておったが、今ではGenerics対応のList<FileInfo>などが推奨されておる。古き良き方法ではあるが、新しい技術の波に乗ることをお勧めするぞ。

サンプルコード

C#
using System;
using System.IO;

class FileInfoExample
{
    static void Main()
    {
        // 対象のファイルパスを指定
        string filePath = "sample.txt";

        // FileInfoオブジェクトを生成
        FileInfo fileInfo = new FileInfo(filePath);

        // ファイルが存在するか確認
        if (fileInfo.Exists)
        {
            Console.WriteLine("ファイル情報:");
            Console.WriteLine($"フルパス: {fileInfo.FullName}");
            Console.WriteLine($"サイズ: {fileInfo.Length} バイト");
            Console.WriteLine($"作成日時: {fileInfo.CreationTime}");

            // ファイルをコピー
            string copyPath = "copy_sample.txt";
            fileInfo.CopyTo(copyPath, true);
            Console.WriteLine("ファイルをコピーしました。");

            // コピーしたファイルを削除
            FileInfo copiedFile = new FileInfo(copyPath);
            copiedFile.Delete();
            Console.WriteLine("コピーしたファイルを削除しました。");
        }
        else
        {
            Console.WriteLine("ファイルが存在しません。");
        }
    }
}

解説

このサンプルコードでは、FileInfoクラスを使ってファイルの情報を取得し、コピーや削除といった操作を行っています。まず、FileInfoオブジェクトを生成し、ファイルが存在するかどうかを確認します。その後、存在する場合は、ファイルのフルパス、サイズ、作成日時を表示します。さらに、ファイルをコピーし、そのコピーを削除する操作も含まれています。FileInfoを活用することで、ファイル操作を簡潔かつ効率的に行えることがわかるでしょう。

このブログを検索

QooQ