Прежде всего, ответ Рекшино может быть одним из способов достижения этого.
Значит, пока я это решил.
Как уже упоминалось в вопросе,
Я открыт, чтобы добавить новый столбец, чтобы указать любое значение флага или все, что
определить путь как специальную папку.
Реализованное решение
Поля БД:
OutputFolder
= Путь к каталогу (статический путь или оставшийся путь в специальной папке)
IsSpecialOutputFolder
= Флаг, определяющий, где в текущем пути есть какая-либо специальная папка или нет.
SpecialFolderId
= значение Enum Environment.SpecialFolder
. (В нашем случае MyDocuments = 5). Я установил значение по умолчанию -1, поскольку это не значение какого-либо элемента в Environment.SpecialFolder
перечислении.
См. Environment.SpecialFolder для более подробной информации об этом enum
.
UI:
Код информации:
DropDown
, чтобы дать больше Environment.SpecialFolder
выбора пользователю. Привязать к нему следующие Dictionary<int, string>
. В дальнейшем это позволит добавлять больше предметов.
public static Dictionary<int, string> AllowedSpecialFolders = new Dictionary<int, string>()
{
{0,"Desktop" }, {5, "MyDocuments"}
};
CheckBox
проверка / снятие отметки делает DropDown
включенным и отключенным.
Реализована правильная проверка, когда введен специальный путь к папке и введен статический путь.
Пример: в случае специального пути, оставшийся путь к каталогу не должен содержать никакого корневого каталога.
if (IsSpecialOutputFolder)
{
// ALL OTHER PROCESSING AND VALIDATIONS HERE.
}