Путь сохранения через WriteAllText

394
21 февраля 2017, 15:42

Есть кнопка которая сохраняет ключи по разным файлам

File.WriteAllText("private.xml", privatekey, Encoding.UTF8);
File.WriteAllText("public.xml", publickey, Encoding.UTF8);

Хочу добавить окошко с выводом куда оно сохранилось с полным путем.

MessageBox.Show("Сохранено в файлах " + Environment.CurrentDirectory + "\\private.xml \n" + Environment.CurrentDirectory + "\\public.xml", "Сохранено", MessageBoxButtons.OK, MessageBoxIcon.Information);

Но что то типо такого делать как по мне это не правильно? Но это все что я смог придумать, подскажите как лучше сделать?

Answer 1

Для начала, подтверждение успешных действий — неправильно. Сообщение нужно выдавать в случае ошибки, а когда всё хорошо, отвлекать юзера нет смысла.

Затем, каталог. Лучше дать юзеру возможность выбрать каталог самостоятельно. Например, так:

var dlg = new FolderBrowserDialog()
{
    Description = "В какой каталог сохранять ключи?",
    RootFolder = Environment.CurrentDirectory,
    ShowNewFolderButton = true;
};
var result = dlg.ShowDialog();
if (result != DialogResult.OK)
    return; // юзер не хочет сохранять, ну и не надо
try
{
    var folder = dlg.SelectedPath;
    File.WriteAllText(Path.Combine(folder, "private.xml"), privatekey, Encoding.UTF8);
    File.WriteAllText(Path.Combine(folder, "public.xml"), publickey, Encoding.UTF8);
}
catch (DirectoryNotFoundException)
{
    MessageBox.Show("Каталог не найден", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
catch (IOException)
{
    MessageBox.Show("Ошибка ввода-вывода (сбойный диск?)",
                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
catch (UnauthorizedAccessException)
{
    MessageBox.Show("Нет доступа, такой файл уже есть или недостаточно прав?",
                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
catch (SecurityException)
{
    MessageBox.Show("Недостаточно прав для сохранения",
                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
READ ALSO
BamL в Xaml (исправить) и обратно в BAml

BamL в Xaml (исправить) и обратно в BAml

Достал ресурсы программы (редактировать) через ilasm, но вот проблема файлы resources бинарныЛадно установил telerik diasembler и достал resx и блин опять...

351
Синтаксис Heredoc странно работает

Синтаксис Heredoc странно работает

Почему выводит ошибку Parse error: syntax error, unexpected $end?

415
Не работает сессия в yii2 на php PHP 7.1.1

Не работает сессия в yii2 на php PHP 7.1.1

В консольном приложении кладутся данные в сессию вот так: Yii::$app->session->set('db-config', $config); После чего можно проверить руками массив $_SESSION и данные...

468
Сортировка чисел по условию

Сортировка чисел по условию

ЗадачаРассмотрим делители числа 30: 1, 2, 3, 5, 6, 10, 15, 30

489