【发布时间】:2009-07-27 13:14:03
【问题描述】:
我有一个小型 C# ASP.NET Web 应用程序,它从动态创建的 .NET 图表控件生成多个 PNG 图像文件。然后将它们用于:
- 创建灯箱效果
- 创建 PDF
- 创建一个 Zip 文件
应用程序的使用率很低,并且数据经常更新,因此我在每次加载时重新创建所有内容。问题是,这些文件通常“正在使用”,当我尝试覆盖时会抛出异常。我不能有例外,因为需要显示正确的新版本图表,而不是旧版本。本来想先删的,还是有问题。因为页面每次都需要“正常工作”,所以我在每次数据刷新后都手动删除了图像文件,但这似乎很荒谬。我有这样的事情:
if(!System.IO.File.Exists(Server.MapPath(ImageFilename))) {
chart.SaveImage(Server.MapPath(imageFilename), ChartImageFormat.Png);
}
对于 PDF,我知道这样的东西很恶心:
try
{
Document doc = new Document();
System.IO.File.Delete(Server.MapPath("charts.pdf"));
PdfWriter.GetInstance(doc, new FileStream(Server.MapPath("charts.pdf"), FileMode.Create));
doc.Open();
///ADD DATA
doc.Close();
}
catch(Exception exc)
{}
如何解决文件问题并强制覆盖而不是手动或自动删除并出现吞咽异常?我总是可以在资源管理器中很好地删除。或者,我是否认为这是错误的方式,应该尝试不同的策略?
【问题讨论】:
标签: asp.net exception file file-io