Server.MapPath从根目录返回两个文件夹我是这样做的:HttpContext.Current.Server.MapPath(@"~~~Content")我知道'。'是针对项目的根目录,但是如何返回到多个文件夹?如果确实需要祖父路径,可以使用Path.GetDirectoryName()从根路径获取它:stringroot=Server.MapPath("~");stringparent=Path.GetDirectoryName(root);stringgrandParent=Path.GetDirectoryName(parent);但您的网络应用程序很可能没有读取或写入权限-我不确定您将用它做什么。您可以使用Parent.Parent.FullNamestringgrandParent=newDirectoryInfo(HttpContext.Current.Server.MapPath("~/")).Parent.Parent.FullName;使用~开始使用站点的根目录,并指定完整路径:~/Archive/Content。由于安全限制,您无法返回到站点根目录之上,另请参阅其他解决方案中的这篇文章。IIS有意阻止直接在站点路径之外提供内容。但是,您可以在IIS中创建一个虚拟目录并将ISAPI重写指向该目录。例如,创建一个名为/staticfiles的虚拟目录,它指向c:\test_data\static-files。就IIS而言,它直接位于站点根目录之外的一个名为/staticfiles的文件夹中。由于您使用的是MapPath,因此您要从虚拟路径(/)返回物理路径()。除非您的虚拟父母和虚拟祖父母与您的物理目录结构具有相同的层次结构,否则创建DirectoryInfo对象或使用从子应用程序的根开始的Path实用程序方法不一定会达到您的预期。我的应用程序没有物理嵌套以匹配Url深度。如果涉及虚拟目录,也可能是这种情况。假设祖父母应用程序是两个虚拟文件夹,这将为您提供物理路径...stringphysicalGrandparentPath=HttpContext.Current.Server.MapPath("~/../../");使用它可以保护您免受IIS设置受到任何正在进行的虚拟目录随机播放游戏的影响。我用它看看我能走多远。在我尝试使用wwwroot之前,我没有得到HttpException。以上是C#学习教程:Server.MapPath从根开始返回两个文件夹共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
