ASP.NET Directory.GetParent似乎返回的是实际的文件夹路径,而不是父路径
我想通过测试该代码来获取解决方案启动项目的父目录路径ASP.NET Directory.GetParent似乎返回的是实际的文件夹路径,而不是父路径,asp.net,directory-structure,Asp.net,Directory Structure,我想通过测试该代码来获取解决方案启动项目的父目录路径 string parent = System.IO.Directory.GetParent(Server.MapPath("~/")); 我获取解决方案的启动项目当前所在的目录。为什么?目前我不知道为什么会发生这种情况。但你能做到 string parent = new DirectoryInfo(Server.MapPath("~/")).Parent.FullName; 获取父目录路径 我试图找到System.IO
string parent = System.IO.Directory.GetParent(Server.MapPath("~/"));
我获取解决方案的启动项目当前所在的目录。为什么?目前我不知道为什么会发生这种情况。但你能做到
string parent = new DirectoryInfo(Server.MapPath("~/")).Parent.FullName;
获取父目录路径
我试图找到System.IO.Directory.GetParent(Server.MapPath(“~/”)
不起作用的原因,并在发现问题时进行更新
更新
我在另一个说的人身上找到了一个可能的答案
我只能假设目录。GetParent(…)不能假设C:\parent\child是一个目录,而不是一个没有文件扩展名的文件。DirectoryInfo可以,因为您正在以这种方式构造对象
发生这种情况的原因是因为
Server.MapPath
在路径的末尾追加了一个\
(即使您将其从MapPath
中删除),例如:
C:\foo\bar\
如果您试图获取它的父目录,它将给出不带斜杠的C:\foo\bar
因此,这将起作用:
var path = System.IO.Directory.GetParent(Server.MapPath("~").TrimEnd('\\'));
这里有一个替代方案:
var path = new System.IO.DirectoryInfo(Server.MapPath("~")).Parent.FullName;