0

私は彼に次のコードを持っています

    HttpPostedFileBase files = Request.Files[0];
    Stream fileStream = files.InputStream;

    using (Stream file = System.IO.File.OpenWrite(originalImage))
    {
        StreamUtil.CopyStream(fileStream, file);
        file.Close();
        fileStream.close();
        fileStream.dispose();
    }

    // here is CopyStream method

    public static void CopyStream(Stream input, Stream output)
    {
        var buffer = new byte[8*1024];
        int len;
        while ((len = input.Read(buffer, 0, buffer.Length)) > 0)
        {
            output.Write(buffer, 0, len);
        }
    }

同じファイルを2回書き込もうとすると、

The process cannot access the file \u0027D:FILENAME because it is being used by another process

どうすればこれを閉じることができますか?それで、書き込みが完了すると、それは閉じられますか?

4

1 に答える 1

0

コメントとして書きたかったのですが、明確ではないので:

次のようにしてみてください。

MemoryStream fileStream = new MemoryStream();

fileStream.WriteByte(04);

using (Stream file = System.IO.File.OpenWrite(originalImage))
{
    CopyStream(fileStream, file);
}

using (Stream file = System.IO.File.OpenWrite(originalImage))
{
    CopyStream(fileStream, file);
}

2番目の使用行で同じエラーが発生しますか?

于 2012-05-20T07:46:51.477 に答える