0

「NotSupportedExeptionはユーザーコードによって処理されませんでした-指定されたパス形式はサポートされていません」というエラーが表示されます。要求されたとおりに文字列を使用しています。

string path = folder + "/" + filename;

fileByte = File.ReadAllBytes(path); // error here

問題が何であるかについて何か考えはありますか?

これにコードを編集しました

string path = Path.Combine(folder, filename);

fileByte = File.ReadAllBytes(path);

パスは「F:\ Web \ Opgaver \ Skirmer \ Hjemmesiden \ BETA \ Skirmer 17-04-2012 \ Skirmer 17-04-2012 \ Billeder \ Galleri \ F:\ Web \ Opgaver \ Skirmer \ Hjemmesiden \ BETA \ Skirmer 17 -04-2012 \ Skirmer 17-04-2012 \ Billeder \ Galleri \ 2011 \ Vingsted \ DSC_0001.JPG "

それでもエラーは発生します。私が見ているのは、ReadAllBytesが、取得したパスを示す文字列を要求しているのに、それでもエラーが表示されていることです。

4

5 に答える 5

2

/スラッシュは Windows では無効な文字であるため、パスでは使用しないでください。代わりに使用Path.Combineして作成します。

string path = Path.Combine(folder, filename);
于 2012-09-25T07:41:06.110 に答える
1

I think that you want to use a backslash, or rather the property Path.DirectorySeparatorChar that returns the correct separator regardless of the file system:

string path = folder + Path.DirectorySeparatorChar.ToString() + filename;

Or you can use the Path.Combine method:

string path = Path.Combine(folder, filename);
于 2012-09-25T07:41:55.177 に答える
0

変数の正確な値はpath? さらに、Path.Combineパス部分を完全パスに連結するために使用する必要があります。

File.ReadAllBytes州のドキュメントとして:

 NotSupportedException  - path is in an invalid format. 
于 2012-09-25T07:41:17.470 に答える
0

パスの形式が正しくありません:

NotSupportedException  path is in an invalid format. 

MSDN: system.io.file.readallbytes

于 2012-09-25T07:41:36.127 に答える
0

編集した質問に投稿したパスが実際に読み取ろうとしているパスである場合、例外が発生する理由は、パスに 2 つのコロンがあるためです。ドライブ文字が 2 回繰り返されます ( F:\...F:\...)。

そのパスに行き着く理由は、の内容folderfilenameへの呼び出しに正確に依存しますPath.Combine()。その場合、結合されたパスとして返されるため、両方folderfilename両方が完全なパスで始まることはほとんどありません。変数には、ベース パスの 2 つのコピーが既に含まれている可能性が高く、2 つのドライブ文字と 2 つのコロンが含まれているため、呼び出す前に , が発生します。Path.Combine()filenamefolderNotSupportedExeptionPath.Combine()

于 2016-08-17T09:07:48.450 に答える