【发布时间】:2019-06-06 10:01:06
【问题描述】:
我已经下载了一个 ASP.Net Core 2.2 MVC 项目。它运行良好。但是当我在我的系统中创建新的 Asp.Net core 2.2 MVC 项目并从下载的项目中复制所有代码时,一个 GetCurrentDirectory 函数无法正常工作。
我正在使用以下代码:
Path.Combine(Directory.GetCurrentDirectory(), location, fileName)
我的项目在 D 盘。 我下载的项目显示正确的路径。但我创建的项目显示在路径下方:
C:\Program Files\IIS Express\data\people.json
谁能帮我解释一下为什么会这样?
【问题讨论】:
-
GetCurrentDirectory方法返回从操作系统的角度来看的当前目录,而不是启动可执行文件的目录。 -
该代码很容易导致安全漏洞。如果
location来自用户输入,则类似..\..\..\Windows的值将映射到C:\Windows。检查What is the equivalent of Server.MapPath in ASP.NET Core? -
为什么您首先要创建绝对路径?为什么不在配置阶段从 Content Root 中指定的路径加载它?
标签: c# asp.net-core-2.2