文件以零字节(0字节)保存

时间:2011-03-16 11:11:17

标签: c# asp.net

当我尝试在C#后面的代码中替换文件时创建的0字节文件。

  string FileExactLocation = s + str;
  if (File.Exists(FileExactLocation))
  {
      File.Replace(FileExactLocation, FileExactLocation,"werwe");
  }   
  else
      FileUpload1.SaveAs(FileExactLocation);

在上面的代码中,我试图删除位于服务器上的文件,它被删除但是我试图保存(替换)的文件包含0个字节......它是空的......

请给我解决这个问题....

3 个答案:

答案 0 :(得分:2)

我认为你对Replace的作用感到困惑。如果您只想用新文件替换原始文件,只需删除旧文件,否则,如果您想保留原始文件的备份,请在保存前重命名。

所以,如果我的理解是正确的,我认为你正在寻找:

  string FileExactLocation = s + str;
  if (File.Exists(FileExactLocation))
  {
      File.Delete(FileExactLocation);
  }   
  FileUpload1.SaveAs(FileExactLocation);

或者:

  string FileExactLocation = s + str;
  if (File.Exists(FileExactLocation))
  {
      // Rename the file adding werwe to the filename
      File.Move(FileExactLocation, Path.Combine(FileExactLocation, "werwe"));
  }   
  FileUpload1.SaveAs(FileExactLocation);

答案 1 :(得分:1)

如果我没错,你的代码中某处有内存泄漏,你想尝试使用吗? “using()”语句,并确保您处置与文件

相关的所有对象

答案 2 :(得分:0)

原因是在回发后清除了fileUploadcontrol值...因此你创建了没有数据的.zip文件。 在这种情况下,你可以使用字节流....上传文件。