DOBON.NET DOBON.NETプログラミング掲示板過去ログ

System.IO.Directory.Existsについて

環境/言語:[WindowsXP/C#/.NET2.0]
分類:[.NET]

はじめまして。

System.IO.Directory.Existsついて質問です。
フォルダが存在するかを調べ、存在したらフォルダの中身を取得する。
という事を行っています。

下記にサンプルを記述します。

if(System.IO.Directory.Exists(TextBox.Text))
{
 string[] files = System.IO.Directory.GetFiles(TextBox.Text, "*", System.IO.SearchOption.AllDirectories);
}

この際に、System.IO.Directory.Existsに不正なパスが入力されていてもtrueになっており困っています。
どういう事か言うと
"C:\"=true
"C:\ \ \ \"でもtrueになってしまいます。
また、System.IO.Directory.GetFilesでも"C:\ \ \ \"は問題無く通過してしまい、"C:\ \ \ \pagefile.sys"という値が帰ってきます。

このような場合は、自力でパスチェックを行うしかないのでしょうか?
アドバイス等よろしくお願いします。
■No21933に返信(ばるさんの記事)
> このような場合は、自力でパスチェックを行うしかないのでしょうか?
> アドバイス等よろしくお願いします。

System.IO.FileInfo | DirectoryInfo を使って Path を整形しましょう。
>じゃんぬねっとさん

> System.IO.FileInfo | DirectoryInfo を使って Path を整形しましょう。
情報ありがとうございます!
下記の用に修正したところ、正常に動作するようになりました。

System.IO.FileInfo hFileInfo = new System.IO.FileInfo(TextBox.Text);
System.IO.DirectoryInfo hDirInfo = hFileInfo.Directory;
sFilePath = hDirInfo.FullName;
if(System.IO.Directory.Exists(sFilePath))
{
 string[] files = System.IO.Directory.GetFiles(sFilePath, "*", System.IO.SearchOption.AllDirectories);
}
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板