我有一个 asp.net 网络应用程序,我需要在与我的网络应用程序相同的目录中获取文件夹的字符串路径。目前我正在使用此代码来获取添加域路径。
string appPath = HttpRuntime.AppDomainAppPath;
返回“c:/path/webapp”,我需要“c:/path/folder”。
谢谢。
如果您想要一种不需要知道起始文件夹的更通用的方法:
//NOTE: using System.IO;
String startPath = Path.GetDirectoryName(HttpRuntime.AppDomainAppPath);
Int32 pos = startPath.LastIndexOf(Path.DirectorySeparatorChar);
String newPath = Path.Combine(startPath.Substring(0, pos), "folder"); //replace "folder" if it's really something else, of course
这样,无论您的 Web 应用程序从哪个目录运行,您都可以获取它,将其减少一级,然后添加“文件夹”以获取新的同级目录。
你可以使用String.Replace
方法。
返回一个新字符串,其中当前实例中出现的所有指定字符串都替换为另一个指定字符串。
string appPath = HttpRuntime.AppDomainAppPath;
appPath = appPath.Replace("webapp", "folder");
这是一个DEMO
.
感谢 DonBoitnott 的评论,这是正确的答案;
string appPath = @"C:\mydir\anotherdir\webapp\thirddir\webapp";
int LastIndex = appPath.LastIndexOf("webapp", StringComparison.InvariantCulture);
string RealappPath = Path.Combine(appPath.Substring(0, LastIndex), "folder");
Console.WriteLine(RealappPath);
这将打印;
C:\mydir\anotherdir\webapp\thirddir\folder