如何在类库中获取正确的文件路径

时间:2016-03-16 12:50:17

标签: c# asp.net-mvc

我有这方面的工作代码,但我想要优化它。

我有一个MVC Web api,我试图用新结构构建这个应用程序。我有项目,我还有两个类库的项目。在其中一个类库中,我有一个文件夹" files"包含我想要检索的文件。

结构:

enter image description here

我有这段代码:

            char separator = Path.DirectorySeparatorChar;
            string startupPath = AppDomain.CurrentDomain.RelativeSearchPath;
            string[] pathItems = startupPath.Split(separator);
            string projectPath = string.Join(separator.ToString(),
                pathItems.Take(pathItems.Length - 1)) + ".Handler";
            string path = Path.Combine(projectPath, "WebRequestHandlers\\Files" + separator + "Domains.ini");

本守则有效。

我不喜欢我必须硬编码的事实

  

" .Handler"

到项目路径以使其工作。我的问题是,如何从AppDomain访问类库,例如:

  

Appdomain.CurrentDomain.SomeMethodToLibary

1 个答案:

答案 0 :(得分:2)

因为您按照开发文件夹层次结构获取文件路径,所以只是我或您正在做的事情一旦发布您的应用程序将无法工作吗?

您应该做的是更改“构建操作”和“复制到输出目录”,如下所示: Properties

使用这些选项,文件将被复制到主解决方案的“bin”目录(或文件所在的bin匹配的子文件夹。您应该检查)。 该文件将始终位于同一位置,并将发布。

所以现在文件的路径是这样的:

string startupPath = AppDomain.CurrentDomain.RelativeSearchPath;
string path = Path.Combine(startupPath, "WebRequestHandlers", "Files", "Domains.ini");