2016-07-06 21 views
0

Ich lerne gerade erst C# in Visual Studio und ich versuche, eine einfache Textverschlüsselungsanwendung zu machen. Mein Problem im Moment ist, dass wenn ich den Befehl:File.WriteAllText() -Anweisung in C# keine Datei erstellen

File.WriteAllText(name, inputTextBox.Text); 

(Wo Name der Name der Datei in einem Savefiledialog und inputTextBox.Text ist der Text in einem Textfeld auf dem Hauptformular ausgewählt ist) jedoch Die Datei wird nie wirklich erstellt. Ich habe sogar versucht, die Anwendung zu erstellen und es als Administrator auszuführen, aber nichts ist passiert.

Was noch seltsamer ist, ist, als ich den Datei-Explorer öffnete, im Quick Access-Bereich, in dem die letzten Dateien angezeigt werden, alle Dateien, die erstellt werden sollten, aber nicht vorhanden sind, wenn ich auf "Datei öffnen" klicke und wenn ich nur versuche, sie zu öffnen, sagt Notepad nur, dass die Datei nicht existiert.

Die Dateien sind auch nicht in meinem Papierkorb oder irgendetwas. Hier ist der Rest meines Code in Fall ist es etwas falsch mit, dass:

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); 
    } 

Und falls Sie sich fragen, Savedialog ist bereits ein Element in meiner Form so mit, dass es kein Problem ist.

+0

i funktioniert gut. –

+3

Haben Sie den Event-Handler 'saveDialog_FileOk' registriert? –

+0

Wenn Sie einen Haltepunkt in 'saveDialog_FileOk' setzen, wird es angehalten? und was sagt es dir über den Namen? –

Antwort

1

Da in Ihrem geposteten Code die Initialisierung des SaveFileDialog fehlt, und Sie in Ihrem Kommentar sagen, dass der Debugger nicht im Ereigniskörper halt, nehme ich den Weitwinkel, anzunehmen, dass das Ereignis nicht ordnungsgemäß registriert ist.

Versuchen Sie, stellen Sie sicher, dass Ihre Klasse (minimal) wie im folgenden Beispiel aussieht:

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); 
    } 
} 

Wenn Ihr Problem bleibt noch, dann werde ich meine Antwort entfernen

+0

Ich löschte mein "saveDialog_FileOk" privates void und fügte es hinzu, indem ich auf das Ereignis auf meinem tatsächlichen Formular doppelklickte und das schien zu funktionieren. Es stellt sich heraus, es war viel einfacher als ich dachte, aber danke :) – TacoMakerMan

+0

manchmal ist es :) –