gpt4 book ai didi

c# - 从 .NET Standard 库获取 Windows 系统目录

转载 作者:可可西里 更新时间:2023-11-01 14:02:22 25 4
gpt4 key购买 nike

似乎是一个简单的问题,但谷歌似乎没有给我答案。

在 .NET Framework 中,我们可以使用 Environment.SystemDirectory 获取系统目录(类似于 C:\WINDOWS\System32),但是该属性当前版本的 .NET Standard 或 .NET Core 中不存在。有没有办法在 .NET Standard(或者失败的情况下,.NET Core)库中获取该文件夹?

为了我的目的,调用在非 Windows 平台上不需要返回有用的东西(它会返回什么?/lib/usr/lib ? 等),尽管我想如果这样做会很酷。

现在看来我最好的选择是尝试直接使用 C:\WINDOWS\System32,如果不存在,则尝试使用 C:\WinNT\System32,但以这种方式进行操作感觉就像是一种 hack。

最佳答案

.Net Core 2.0 (and .Net Standard 2.0) will contain Environment.SystemDirectory ,但当前的 1.x 版本没有。

虽然该属性仍然作为 internal 存在,但如果您愿意依赖非公开代码,一种解决方法是使用反射访问它:

using System;
using System.Reflection;
using static System.Reflection.BindingFlags;



var systemDirectory = typeof(Environment).GetProperty("SystemDirectory", NonPublic | Static)
.GetValue(null, null);

在我的 Windows 10 机器上,.Net Core SDK 1.0 在 .Net Core 1.1.1 上运行,返回 C:\WINDOWS\system32。在 Ubuntu 16.04 上运行相同的代码会导致 NullReferenceException

关于c# - 从 .NET Standard 库获取 Windows 系统目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42708939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com