如何在appsettings.json中设置文件路径至当前驱动器根目录
没问题,这个需求完全可以通过调整appsettings.json里的路径配置来实现,不用写任何代码,核心是利用Windows文件系统的路径解析特性。
解决方案
你可以使用足够多的上级目录引用(../)来确保最终定位到当前应用所在驱动器的根目录——Windows系统中,当你已经处于驱动器根目录时,继续使用../不会改变路径位置,依然停留在根目录。
在appsettings.json里直接替换路径配置即可:
"path": "../../../../logs/log.txt"
为什么这个写法可行?
- 假设应用部署在
D:\SampleApp\Myapp:../../会带你回到D:\,后面再多的../依然停留在根目录,最终拼接logs/log.txt就得到D:\logs\log.txt。 - 如果应用部署在
D:\Myapp:../就到了D:\,后面的../不影响,结果还是D:\logs\log.txt。 - 哪怕应用在更深的目录比如
D:\SampleApp\SubFolder\SubSubFolder\Myapp,足够多的../最终也会回到D:\。
注意事项
- 如果你使用的日志框架是基于当前工作目录解析路径(而非应用安装目录),请确保应用总是从自身所在目录启动(比如直接双击exe,或部署脚本中先切换到应用目录再启动),这样相对路径才能正确指向应用所在的驱动器。
- 你可以根据实际情况调整
../的数量,一般4-5个就足够覆盖绝大多数部署场景,多写几个也不会有问题。
内容的提问来源于stack exchange,提问作者Daman Pal Singh Khanna




