2016-07-06 5 views
0

Я все еще только изучаю C# в Visual Studio, и я пытаюсь сделать простое приложение для шифрования текста. Моя проблема в настоящее время является то, что, когда я использую команду:Оператор File.WriteAllText() в C#, не создающий файл

File.WriteAllText(name, inputTextBox.Text); 

(где имя это имя файла, выбранного в SaveFileDialog и inputTextBox.Text текст в текстовом поле на главной форме) однако файл никогда не создается. Я даже пытался создать приложение и запускать его как администратора, но ничего не произошло.

Что еще более странно, когда я открыл File Explorer, в разделе быстрого доступа, где отображаются последние файлы, все файлы, которые должны были быть созданы, появляются там, но не существуют, когда я нажимаю «Открыть местоположение файла», и если я просто попытаюсь их открыть, блокнот просто скажет мне, что файл не существует.

Файлы также не находятся в моем корзине или что-то еще. Вот остальная часть моего кода в случае, если это что-то не так с этим:

public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void saveButton_Click(object sender, EventArgs e) 
    { 
     saveDialog.ShowDialog(); 
    } 

    private void saveDialog_FileOk(object sender, CancelEventArgs e) 
    { 
     string name = saveDialog.FileName; 
     File.WriteAllText(name, inputTextBox.Text); 
    } 

И в случае, если вам интересно, saveDialog уже элемент в моей форме, так что нет никаких проблем с этим.

+0

I работает отлично. –

+3

Вы зарегистрировали обработчик событий 'saveDialog_FileOk'? –

+0

, когда вы устанавливаете точку останова внутри 'saveDialog_FileOk', она останавливается? и что это говорит вам о «имени»? –

ответ

1

Поскольку в вашем опубликованном коде отсутствует инициализация SaveFileDialog, и вы говорите в своем комментарии, что отладчик не останавливается в теле события. Я беру длинный снимок, чтобы предположить, что событие не зарегистрировано надлежащим образом.

Try, чтобы убедиться, что ваш класс (минимально) выглядит как в следующем примере:

public partial class Form1 : Form 
{ 

    SaveFileDialog saveDialog; 

    public Form1() 
    { 
     InitializeComponent(); 
     // create instance of SaveFileDialog 
     saveDialog = new SaveFileDialog(); 
     // registration of the event 
     saveDialog.FileOk += SaveDialog_FileOk; 
    } 

    private void saveButton_Click(object sender, EventArgs e) 
    { 
     saveDialog.ShowDialog(); 
    } 

    private void saveDialog_FileOk(object sender, CancelEventArgs e) 
    { 
     string name = saveDialog.FileName; 
     File.WriteAllText(name, inputTextBox.Text); 
    } 
} 

Если ваша проблема все еще остается, то я удалю свой ответ

+0

Я удалил частную пустоту «saveDialog_FileOk» и добавил ее, дважды щелкнув событие на моей фактической форме, и это, казалось, сработало. Оказывается, это было намного проще, чем я думал, но спасибо :) – TacoMakerMan

+0

иногда это :) –

Смежные вопросы