如何使用Orchard和System.IO.File方法的(根)相对路径?

时间:2015-12-02 15:09:12

标签: c# path orchardcms

我开发了一个使用文件的模块。使用代字号在主题中提供文件是可以的,但这似乎不适用于控制器,我使用System.IO.FileMove()Delete()方法处理文件。现在我使用绝对路径,但它们不可行 - 模块应该在不同的机器上使用,并且仍然存储在单个存储库中。

如何找到在每种情况下我应该将哪个根用于根相关路径?如果没有通用规则,如何在管理上传/下载/查看文件时找到它?还是更复杂?

我的文件存储在:(SolutionRoot)/Orchard.Web/Media/Default/_FooBar/我已尝试将所有文​​件夹作为相对根,但它不起作用。

1 个答案:

答案 0 :(得分:1)

在我看来HostingEnvironment.MapPath可能就是你要找的东西。

如果不是,那么您可以向执行程序集询问其位置并从那里找出相应的信息:

var codeBaseUrl = Assembly.GetExecutingAssembly().CodeBase;
var filePathToCodeBase = new Uri(codeBaseUrl).LocalPath;
var directoryPath = Path.GetDirectoryName(filePathToCodeBase);