如何将(根)相对路径与Orchard和System.IO.File方法一起使用
本文关键字:IO System File 方法 一起 Orchard 路径 相对 | 更新日期: 2023-09-27 18:25:18
我开发了一个处理文件的模块。使用波浪号为主题中的文件提供服务是可以的,但这在控制器中似乎不起作用,在控制器中,我使用Move()
或Delete()
等System.IO.File
方法处理文件。目前,我使用绝对路径,但它们是不可行的——模块应该在不同的机器上使用,并且仍然存储在一个存储库中。
如何在每种情况下为根相关路径找到应该使用的根?如果没有通用规则,如何在管理文件上传/下载/查看时找到它?还是更复杂?
我的文件存储在:(SolutionRoot)/Orchard.Web/Media/Default/_FooBar/
中。我尝试过将所有文件夹作为相对根目录,但都不起作用。
在我看来,HostingEnvironment.MapPath
可能就是您想要的。
如果不是,那么你可以向执行程序集询问它的位置,并从中找出答案:
var codeBaseUrl = Assembly.GetExecutingAssembly().CodeBase;
var filePathToCodeBase = new Uri(codeBaseUrl).LocalPath;
var directoryPath = Path.GetDirectoryName(filePathToCodeBase);