System.Configuration.LocalFileSettingsProvider.GetPreviousConfigFileName C# (CSharp) Метод

GetPreviousConfigFileName() приватный Метод

private GetPreviousConfigFileName ( bool isRoaming ) : string
isRoaming bool
Результат string
        private string GetPreviousConfigFileName(bool isRoaming) {
            if (!ConfigurationManagerInternalFactory.Instance.SupportsUserConfig) {
                throw new ConfigurationErrorsException(SR.GetString(SR.UserSettingsNotSupported));
            }

            string prevConfigFile = isRoaming ? _prevRoamingConfigFileName : _prevLocalConfigFileName;

            if (String.IsNullOrEmpty(prevConfigFile)) {
                string userConfigPath = isRoaming ? ConfigurationManagerInternalFactory.Instance.ExeRoamingConfigDirectory : ConfigurationManagerInternalFactory.Instance.ExeLocalConfigDirectory;
                Version curVer = CreateVersion(ConfigurationManagerInternalFactory.Instance.ExeProductVersion);
                Version prevVer = null;
                DirectoryInfo prevDir = null;
                string file = null;
    
                if (curVer == null) {
                    return null;
                }
    
                DirectoryInfo parentDir = Directory.GetParent(userConfigPath);
    
                if (parentDir.Exists) {
                    foreach (DirectoryInfo dir in parentDir.GetDirectories()) {
                        Version tempVer = CreateVersion(dir.Name);
        
                        if (tempVer != null && tempVer < curVer) {
                            if (prevVer == null) {
                                prevVer = tempVer;
                                prevDir = dir;
                            }
                            else if (tempVer > prevVer) {
                                prevVer = tempVer;
                                prevDir = dir;
                            }
                        }
                    }
        
                    if (prevDir != null) {
                        file = Path.Combine(prevDir.FullName, ConfigurationManagerInternalFactory.Instance.UserConfigFilename);
                    }
        
                    if (File.Exists(file)) {
                        prevConfigFile = file;
                    }
                }

                //Cache for future use.
                if (isRoaming) {
                    _prevRoamingConfigFileName = prevConfigFile;
                }
                else {
                    _prevLocalConfigFileName = prevConfigFile;
                }
            }

            return prevConfigFile;
        }