public string GetFilePaths(int webLevelAsInt, string path, string site, string locationSubPath) { string str; string str2; VirtualPath path3; string str3; string str4; string str5; VirtualPath path4; WebLevel webLevel = (WebLevel)webLevelAsInt; IConfigMapPath instance = IISMapPath.GetInstance(); WebConfigurationHost.GetConfigPaths(instance, webLevel, VirtualPath.CreateNonRelativeAllowNull(path), site, locationSubPath, out path3, out str, out str2, out str3, out str4); ArrayList list = new ArrayList(); list.Add(VirtualPath.GetVirtualPathString(path3)); list.Add(str); list.Add(str2); list.Add(str3); list.Add(str4); WebConfigurationHost.GetSiteIDAndVPathFromConfigPath(str3, out str5, out path4); list.Add("machine"); list.Add(HttpConfigurationSystem.MachineConfigurationFilePath); if (webLevel != WebLevel.Machine) { list.Add("machine/webroot"); list.Add(HttpConfigurationSystem.RootWebConfigurationFilePath); for (VirtualPath path5 = path4; path5 != null; path5 = path5.Parent) { string configPathFromSiteIDAndVPath = WebConfigurationHost.GetConfigPathFromSiteIDAndVPath(str2, path5); string str7 = Path.Combine(instance.MapPath(str2, path5.VirtualPathString), "web.config"); list.Add(configPathFromSiteIDAndVPath); list.Add(str7); } } StringBuilder builder = new StringBuilder(); for (int i = 0; i < list.Count; i++) { if (i > 0) { builder.Append('<'); } string str8 = (string)list[i]; builder.Append(str8); } return(builder.ToString()); }
public string GetFilePaths(int webLevelAsInt, string path, string site, string locationSubPath) { WebLevel webLevel = (WebLevel)webLevelAsInt; IConfigMapPath configMapPath = IISMapPath.GetInstance(); // Get the configuration paths and application information string appSiteName, appSiteID; VirtualPath appPath; string configPath, locationConfigPath; WebConfigurationHost.GetConfigPaths(configMapPath, webLevel, VirtualPath.CreateNonRelativeAllowNull(path), site, locationSubPath, out appPath, out appSiteName, out appSiteID, out configPath, out locationConfigPath); // // Format of filePaths: // appPath < appSiteName < appSiteID < configPath < locationConfigPath [< configPath < fileName]+ // ArrayList filePaths = new ArrayList(); filePaths.Add(VirtualPath.GetVirtualPathString(appPath)); filePaths.Add(appSiteName); filePaths.Add(appSiteID); filePaths.Add(configPath); filePaths.Add(locationConfigPath); string dummySiteID; VirtualPath virtualPath; WebConfigurationHost.GetSiteIDAndVPathFromConfigPath(configPath, out dummySiteID, out virtualPath); // pathmap for machine.config filePaths.Add(WebConfigurationHost.MachineConfigPath); filePaths.Add(HttpConfigurationSystem.MachineConfigurationFilePath); // pathmap for root web.config if (webLevel != WebLevel.Machine) { filePaths.Add(WebConfigurationHost.RootWebConfigPath); filePaths.Add(HttpConfigurationSystem.RootWebConfigurationFilePath); // pathmap for other paths for (VirtualPath currentVirtualPath = virtualPath; currentVirtualPath != null; currentVirtualPath = currentVirtualPath.Parent) { string currentConfigPath = WebConfigurationHost.GetConfigPathFromSiteIDAndVPath(appSiteID, currentVirtualPath); string currentFilePath = configMapPath.MapPath(appSiteID, currentVirtualPath.VirtualPathString); currentFilePath = System.IO.Path.Combine(currentFilePath, HttpConfigurationSystem.WebConfigFileName); filePaths.Add(currentConfigPath); filePaths.Add(currentFilePath); } } // join into a single string StringBuilder sb = new StringBuilder(); for (int i = 0; i < filePaths.Count; i++) { if (i > 0) { sb.Append(FilePathsSeparatorChar); } string part = (string)filePaths[i]; sb.Append(part); } return(sb.ToString()); }