context:
- 系统有一个硬盘和一个驱动器(“C:\”)
- 所需路径位于 F:\eventlogging
我做了什么:
问题:
- 在代码中,有一些部分写入 F:\eventlogging 内的文件
- 抛出异常:System.IO.DirectoryNotFoundException:System.IO.DirectoryNotFoundException:找不到路径的一部分
'F:\事件记录\'..
我尝试过的:
- 在资源管理器中输入路径(转到路径)
- 在 cmd 中 cd 到此路径也有效
附加信息:
如果您使用提升的提示符映射驱动器,则该驱动器在非管理员帐户下将不可见。
您可以以管理员身份运行程序,也可以使用管理员和非管理员帐户都可见的不同方法。这涉及将以下项添加到注册表(将以下行复制/粘贴到"temp.reg"
文件,然后双击它):
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
"F:"="\\??\\C:"
额外的好处是这种方法在重新启动后仍然有效。
Note:如果您计划使用 regedit.exe 手动添加密钥,请不要转义反斜杠(即替换每个\\
with \
在上面的表达式中),并且在这种情况下也没有引号(您将添加一个新的String Value
to the DOS Devices
键,将名称设置为F:
,以及数据到\??\C:
)
您还需要重新启动系统才能使其生效。
另外:我知道您写道代码无法更改,但仍然应该强调:使用配置文件而不是硬编码路径显然是任何应用程序的正确方法(或者更简单,将日志放置在当前的某个位置)用户AppData\Local
文件夹)。重建这个公共基础,默认设置为f:\eventlogging
不会破坏其他应用程序,但可以让您拥有这种灵活性。对于代码中的所有其他硬编码设置和幻数也是如此。所有日志框架都使用配置文件来配置其输出。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)