web-dev-qa-db-ja.com

パス文字列またはFileInfoからドライブ文字を取得します

これはばかげた質問のように思えるかもしれませんので、ここに行きます:

ドライブ文字のFileInfo.FullPathの文字列を解析して、DriveInfo( "c")などを使用して、このファイルを書き込むのに十分なスペースがあるかどうかを確認する以外に。 FileInfoからドライブ文字を取得する方法はありますか?

23
maxfridbe
FileInfo f = new FileInfo(path);    
string drive = Path.GetPathRoot(f.FullName);

これにより、「C:\」が返されます。それは本当に他の唯一の方法です。

50
BFree

まあ、これもあります:

FileInfo file = new FileInfo(path);
DriveInfo drive = new DriveInfo(file.Directory.Root.FullName);

そしてねえ、なぜ拡張メソッドではないのですか?

public static DriveInfo GetDriveInfo(this FileInfo file)
{
    return new DriveInfo(file.Directory.Root.FullName);
}

次に、次のことができます。

DriveInfo drive = new FileInfo(path).GetDriveInfo();
23
Dan Tao

少しの文字列解析で何も問題はありません:-)

FullPath.Substring(0,1);
1
Joel Martinez