在我的解决方案中,我在项目ApiCon
有静态文件目录,我的代码需要获取静态文件目录在项目BLL
中,文件路径URL是/image/myimg.png
。< / p>
现在该文件可以完全显示在前端。当我在控制器中调用Api时,我需要在静态文件目录中删除我的图像,但是我无法获得删除该文件的路径。
如何获取静态文件目录?
if (File.Exists(path))
{
File.Delete(path);
}
P.S。我不需要在其他项目中使用Directory.GetParent()
作为查找目录。
答案 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);
}