检查是否存在“目录”数组,并将该值添加到配置文件中相应的键数组中
本文关键字:数组 配置文件 添加 存在 是否 目录 检查 | 更新日期: 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
}
}