检查是否存在“目录”数组,并将该值添加到配置文件中相应的键数组中

本文关键字:数组 配置文件 添加 存在 是否 目录 检查 | 更新日期: 2023-09-27 17:50:27

        string[] userDirectoryInput = {userSourceDirectory, userDefaultDestination, userArchiveDestination, userDocumentDestination, userImageDestination, userMusicDestination, userVideoDestination};
        string[] directorySettings = { "SourceFolder", "DefaultFolder", "ArchiveFolder", "DocumentFolder", "ImageFolder", "MusicFolder", "VideoFolder" };
        Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
        foreach(string input in userDirectoryInput) 
        {
            if(Directory.Exists(input)) 
                {
                   //soemthing like this
                   config.AppSettings.Settings[directorySettings].Value = input;

                }
                else 
                    {
                    MessageBox.Show(input + " is not a valid directory.", "Directory Error");
                    } 
        }
        config.Save(ConfigurationSaveMode.Modified);

userDirectoryInput是一个目录数组。directorySettings是一个键名数组。

我想检查目录是否有效,并在相应的键中输入值(首先在userDirectoryInput中的第一个directorySettings,第5与第5等)

检查是否存在“目录”数组,并将该值添加到配置文件中相应的键数组中

为什么不创建一个类呢?程序员通常不会简单地创建一个类来解决这样的问题,并使用多个模糊的列表使事情复杂化。

public class Entry
{
   public string Directory { get; set; }
   public string SettingName {get; set;}
   public bool Exists {get; private set;}
   public bool CheckDirectory(Configuration config){
        if (Directory.Exists(Directory ) ){
          config.AppSettings.Settings[directorySettings].Value = Directory;
          Exists = true;
          return true;
        }
        else{
          Exists = false;
          return false;
        }
   }
}

然后遍历这些条目的列表…

Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
foreach(Entry entry in listOfEntries) 
{
   if ( entry.CheckDirectory(config) == false ){
     //handle error
   }
}