c# - C#删除文件

标签 c# asp.net file

看起来这应该是一个非常简单的话题,所有的例子都只是几行,但没有像样的解释,因此我一直遇到同样的错误而没有解决方案。

简而言之,这部分应用程序是这样运行的

  1. 从数据库中拉取图片
  2. 在临时文件夹中创建实际图像文件
  3. 创建包含图像的 pdf
  4. 现在删除创建的图像。

一切正常,直到删除。我不断收到错误

InnerException:
System.ArgumentException: URI formats are not supported. at System.IO.Path.NormalizePathFast(String path, Boolean fullCheck)...

我尝试了几种不同的方法来完成删除最新的:

foreach (string item in TempFilesList)
    {
        path = System.Web.HttpContext.Current.Application["baseWebDomainUrl"] + "/temp/" + item;
        fileDel = new FileInfo(path);
        fileDel.Delete();
    }

在那之前的尝试是:

foreach (string item in TempFilesList)
    {
        File.Delete(System.Web.HttpContext.Current.Application["baseWebDomainUrl"] + "/temp/" + item);
    }

TempFilesList 是一个数组列表,其中包含要删除的图像的路径。

最佳答案

您应该尝试调用 Server.MapPath(path) 来获取文件的“真实”路径。将其传递给 File.Delete,它应该可以工作(假设文件权限等是正确的)

例如:

foreach (string item in TempFilesList)
{
    path = System.Web.HttpContext.Current.Application["baseWebDomainUrl"] + "/temp/" + item;
    path = Server.MapPath(path);
    fileDel = new FileInfo(path);
    fileDel.Delete();
}

关于c# - C#删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/571457/

相关文章:

c# - MVVM无法在主页上显示默认用户控件

asp.net - 如何在 LINQ 中使用 IN 运算符

.net - 改进翻译人员和开发人员的工作流程

python - 避免在 Python 中部分写入文件

file - Camel File 组件 - Idempotrepository 和 InProgressRepository 之间有什么区别

c# - ASP.NET 基于 ViewState 动态加载控件

c# - 使用 LINQ 从分隔字符串列表构建字典

c - 为什么 FILE 结构实例的大小在 64 位操作系统中为 216 字节,在 32 位操作系统中为 148 字节?

c# - 通过 SendMessage 将字符串从 C# 发送到 MFC

javascript - ASP.NET重构思路: TypeScript