当前位置:  开发笔记 > 编程语言 > 正文

在C#中删除文件

如何解决《在C#中删除文件》经验,为你挑选了2个好方法。

看起来它应该是一个非常简单的主题,所有的例子到处只是几行,但是没有像样的解释,因此我在没有解决方案的情况下继续遇到同样的错误.

简而言之,这部分应用就像这样运行

    从db中提取图像

    在临时文件夹中创建实际图像文件

    创建带有图像的pdf

    现在删除已创建的图像.

一切正常,直到删除.我一直在收到错误

InnerException:
System.ArgumentException:不支持URI格式.在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是一个数组列表,包含要删除的图像的路径.



1> David Wengie..:

您应该尝试调用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();
}



2> Randolpho..:

您需要您创建的文件的实际文件路径,而不是您创建的路径的URL.您的代码创建了一个类似于" http://www.mywebsite.com/location/temp/filename.jpg " 的路径.

你需要一些看起来像"C:\ MyWorkingFolder\filename.jpg"的东西.

不过,我建议不要使用Server.MapPath.由于您是在自己的代码中自己创建文件,因此可以控制文件创建位置.相反,请使用它.将其存储在web.config中作为AppSettings键.

例如:

string basePath = ConfigurationManager.AppSettings["PdfGenerationWorkingFolder"];
foreach(string item in TempFilesList)
{
  File.Delete(basePath + item);
}

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有