を提出するのMemoryStreamデータを書き込みます。どのように私はこのコードを持って
エラーが発生しました:ファイル操作が許可されていません。パス 'f:\ Test.txt'へのアクセスが拒否されました。
を提出するのMemoryStreamデータを書き込みます。どのように私はこのコードを持って
エラーが発生しました:ファイル操作が許可されていません。パス 'f:\ Test.txt'へのアクセスが拒否されました。
おそらく、あなたはf:\Test.txt
への書き込みアクセス権を持っていない可能性があります。これは.NETの範囲外の問題です。
ただし、方法が壊れています。ここでは:あなたはあなたがストリーム(ないすべてのストリームがこれをサポート)の長さを取得することができを想定している、とあなたはRead
は一度に全部を読まれることをを想定してもだ
byte[] bytesInStream = new byte[stream.Length];
stream.Read(bytesInStream, 0, (int)bytesInStream.Length);
。それは必ずしもそうではありません。
.NET 4を使用している場合は、Stream.CopyTo
を使用するとより簡単になります。ただし、ストリームにデータがない場合は中止するのには役立ちませんが、最初にf:\Test.txt
に書き込むことができない問題を修正する必要があります。
私もこのエラーに遭遇し、Jon Skeetの示唆するように、最初の問題はアクセス権でした。
これは、相対パスを使用して宛先フォルダに到達しなかったためです。私がこれを変更すると、問題なくアクセスし修正することができました。
ストリームからバイトを抜き出す必要はなく、 'stream.CopyTo(fileStream);'を使用します。 – ebutusov