名前空間 System.IO
自己紹介
...私は「Path」クラスを司るファイルパスの守護者だ。無駄な言葉は発さないが、確実にファイルパスの操作を見守り続けている。基本機能
私の役目は、ファイルやディレクトリのパスを適切に処理することだ。パスの結合、拡張子の変更、ファイル名の取得など...すべてを正確に、プラットフォームに依存せずに実行する。パス文字列の安全性
不正なパス文字の混入を防ぎ、パスの正規化を行う。セキュリティの観点から、これは極めて重要な役割だ。GetInvalidPathCharsメソッドで、使用できない文字を確認できる。クロスプラットフォーム対応
Windows、Linux、macOSなど、異なるOSでも正しく動作するようパスを処理する。DirectorySeparatorCharやAltDirectorySeparatorCharを使って、適切な区切り文字を提供する。パス操作の効率化
Combineメソッドによるパスの結合、GetFileNameやGetExtensionによる各種情報の取得...これらの操作を効率的に行う手段を提供している。フルパスと相対パスの変換
GetFullPathメソッドで相対パスから絶対パスへの変換を行う。また、不要なパス要素の正規化も自動的に実施する。サンプルコード
C#
using System; using System.IO; class PathDemo { static void Main() { // パスの結合 string basePath = @"C:\Users\Documents"; string fileName = "sample.txt"; string fullPath = Path.Combine(basePath, fileName); Console.WriteLine($"結合したパス: {fullPath}"); // パス情報の取得 Console.WriteLine("\n【パス情報】"); Console.WriteLine($"ファイル名: {Path.GetFileName(fullPath)}"); Console.WriteLine($"拡張子: {Path.GetExtension(fullPath)}"); Console.WriteLine($"ディレクトリ名: {Path.GetDirectoryName(fullPath)}"); Console.WriteLine($"拡張子を除いたファイル名: {Path.GetFileNameWithoutExtension(fullPath)}"); // パスの変更 string newExt = Path.ChangeExtension(fullPath, ".doc"); Console.WriteLine($"\n拡張子変更後: {newExt}"); // 一時ファイルパスの取得 string tempPath = Path.GetTempFileName(); Console.WriteLine($"\n一時ファイルパス: {tempPath}"); // パスの正規化 string relativePath = @".\Documents\..\Documents\sample.txt"; string normalizedPath = Path.GetFullPath(relativePath); Console.WriteLine($"\n正規化されたパス: {normalizedPath}"); // パス文字の検証 Console.WriteLine("\n【パス検証】"); char[] invalidChars = Path.GetInvalidPathChars(); Console.WriteLine($"無効なパス文字数: {invalidChars.Length}"); // ランダムファイル名の生成 string randomFileName = Path.GetRandomFileName(); Console.WriteLine($"\nランダムファイル名: {randomFileName}"); // パスのルート情報 string root = Path.GetPathRoot(fullPath); Console.WriteLine($"\nパスのルート: {root}"); } }
解説
このサンプルコードでは、以下のPathクラスの主要メソッドを説明しています:- Path.Combine() - パス文字列の結合
- Path.GetFileName() - ファイル名の取得
- Path.GetExtension() - 拡張子の取得
- Path.GetDirectoryName() - ディレクトリ名の取得
- Path.ChangeExtension() - 拡張子の変更
- Path.GetTempFileName() - 一時ファイルパスの取得
- Path.GetFullPath() - 絶対パスの取得
- Path.GetInvalidPathChars() - 無効なパス文字の取得
- Path.GetRandomFileName() - ランダムなファイル名の生成
- Path.GetPathRoot() - パスのルート情報の取得