2

我有以下代码:

    [HttpPost]
    public ActionResult FileUploadMultiple(IEnumerable<HttpPostedFileBase> files)
    {

        foreach (var file in files)
        {
            if (file != null)
            {
                var fileName = Path.GetFileName(file.FileName);
                string extension = Path.GetExtension(file.FileName);

                var path = Path.Combine("C://Reports//36000", fileName);

                file.SaveAs(path);

            }

        }

        return RedirectToAction("Index");
    }

我有 2 个正在测试的文件 - 因此它应该循环两次。第一个可以很好地保存到给定的路径。当代码运行并尝试执行第二个文件时,我收到以下消息:

该进程无法访问文件“C:\Reports\36000\Report #36028.pdf”,因为它正被另一个进程使用。

我认为我需要进行处置,但是当我尝试这样做时,file.Dispose()Intellisense.

4

1 回答 1

1

在保存之前,您可以尝试删除现有文件:

if (System.IO.File.Exists(path))
 System.IO.File.Delete(path);
file.SaveAs(path);
于 2013-02-01T15:32:44.183 回答