获取类库中的当前目录

Van*_*nel 4 c# wpf json windows-8 windows-8.1

我正在使用 .Net Framework 4.5.1 开发一个 C# 库,以便在 Windows 8.1 桌面应用程序中使用它。

在这个库项目中,我有一个JSON文件,我想加载它。首先,我尝试使用以下命令获取当前目录:

string currentDir = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
Run Code Online (Sandbox Code Playgroud)

但是,我测试过,Assembly.GetEntryAssembly()结果为空。

也许,我可以使用资源文件而不是 JSON 文件。

这是方法:

private void LoadData()
{
    string currentDir = 
        Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);

    string file = 
        Path.Combine(currentDir, cardsDir, cardsFile);

    string json =
        File.ReadAllText(file);

    Deck = JsonConvert.DeserializeObject<Card[]>(json);
}
Run Code Online (Sandbox Code Playgroud)

任何想法?有更好的方法吗?如何获取当前目录?

Dav*_*eña 6

是的,你必须考虑@Hagai Shahar 的回答,方法是使用AppDomain.CurrentDomain.BaseDirectory


Zoh*_*lam 5

尝试这个

Environment.CurrentDirectory
Run Code Online (Sandbox Code Playgroud)

这将返回应用程序的当前工作目录。现在您可以访问与您的应用程序相关的任何文件

string currentDir = Path.GetDirectoryName(Environment.CurrentDirectory);
Run Code Online (Sandbox Code Playgroud)