私は多かれ少なかれルックス、このような文字列を取得:ファイルのパスは
"C:\\bláh\\bleh"
私はそれでのFileInfoを作るのが、私はその存在を確認する場合はfalseを返します:
var file = new FileInfo(path);
file.Exists;
私は手動でのデバッグ時に
"C:\\blah\\bleh"
へのパスの名前を変更し、ウィットを存在何とかのことを確認した場合その中に吹き出しがあり、file.Existsがtrueを返すようになります。だから私は問題が非アスキー文字だと思う。
実際の文字列はプログラムによって作成されます。アプリケーションのAppDomainには "á"を含む部分があり、他の部分はユーザーから提供されます。両方の部分がPath.Combineによってまとめられています。私は2つの方法で結果の文字列の妥当性を確認しました。私のプログラムが生成するエラーからコピーします。パスにはエクスプローラが含まれています。デバッガでその文字列を見ると、\は\として書かれているので、正しくエスケープされたように見えます。 "á"はデバッガによって文字どおりに出力されます。
文字列を処理して、ASCII以外の文字があっても有効なパスになるようにするにはどうすればよいですか?
文字列はどこから来ますか。コードファイルにコード化されているのですか、それともユーザーが提供していますか? –
FredrikMörk、私はちょうど質問自体にその情報を追加しました。 – Pablo
それは奇妙なものです。私は同じパスと名前を持つファイルを作成し、次のコードは '' True ''を出力します:' 'FileInfo fi = new FileInfo(" C:\\bláh\\ bleh "); Console.WriteLine(fi.Exists); ' –