如何获取静态文件目录

时间:2018-04-17 07:13:59

标签: c# asp.net-core

在我的解决方案中,我在项目ApiCon有静态文件目录,我的代码需要获取静态文件目录在项目BLL中,文件路径URL是/image/myimg.png。< / p>

现在该文件可以完全显示在前端。当我在控制器中调用Api时,我需要在静态文件目录中删除我的图像,但是我无法获得删除该文件的路径。

如何获取静态文件目录?

if (File.Exists(path))
{
    File.Delete(path);
}

P.S。我不需要在其他项目中使用Directory.GetParent()作为查找目录。

2 个答案:

答案 0 :(得分:0)

静态文件虽然应位于应用程序文件夹中,但可以放置在您想要的任何文件夹中

他们可能在:

  • application_root/files/
  • application_root/files/static/
  • application_root/superman/batman/robinhood/

从好的方面来说,即使在多个位置,您也可以将它们放在任何地方。在缺点方面,没有默认的静态文件目录

这意味着您必须跟踪目录本身。存储此类信息的最佳方法是在您的应用程序的web.config文件中。

<强> 1。在web.config文件的<appSettings>中添加配置密钥。

<add key="StaticFileDirectory" value="MyStaticFiles" />

<强> 2。在项目中添加对System.Configuration的引用。

它列在Assemblies > Framework下。

第3。检索配置值。

string foldername = ConfigurationManager.AppSettings["StaticFileDirectory"];

<强> 4。将其转换为绝对路径。

string absoluteFolderPath = System.IO.Path.Combine(HttpRuntime.AppDomainAppPath, foldername);

<强> 5。根据需要使用它。

string absoluteFilePath = System.IO.Path.Combine(absoluteFolderPath, filename);

if (File.Exists(absoluteFilePath))
{
    File.Delete(absoluteFilePath);
}

答案 1 :(得分:-1)

您可以通过这种方式解决此问题。 此函数将搜索给定文件夹路径ex中的所有子目录:&#34; C:\ Users \ NBY81HC \ Desktop \ hello&#34;返回你想要的文件。

foreach (string file_path in Directory.GetFiles(@"C:\Users\NBY81HC\Desktop\hello", "test.txt", SearchOption.AllDirectories))
{
   Console.WriteLine(file_path);//Return C:\Users\NBY81HC\Desktop\hello\aa\a2\test.txt
   File.Delete(file_path);
}