簡體   English   中英

C#中的File.WriteAllText()語句未創建文件

[英]File.WriteAllText() statement in C# not creating a file

我仍然只是在Visual Studio中學習C#,並且試圖創建一個簡單的文本加密應用程序。 我現在的問題是當我使用命令時:

File.WriteAllText(name, inputTextBox.Text);

(其中name是在SaveFileDialog中選擇的文件的名稱,而inputTextBox.Text是主窗體上文本框中的文本),但是實際上從未創建過該文件。 我什至嘗試構建該應用程序並以管理員身份運行它,但沒有任何反應。

甚至更奇怪的是,當我打開文件資源管理器時,在快速訪問部分中顯示了最近的文件,當我單擊“打開文件位置”時,所有應該創建的文件都顯示在那里,但是不存在,如果我只是嘗試打開它們,記事本只是告訴我該文件不存在。

這些文件也不在我的回收站中。 這是我的其余代碼,以防萬一。

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已經是我表單中的一個元素,那么這沒有問題。

由於在您發布的代碼中缺少SaveFileDialog的初始化,並且您在注釋中說Debugger不會在事件主體中停止,因此,我大膽地假設該事件未正確注冊。

嘗試確保您的課程(至少)看起來像以下示例:

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

如果您的問題仍然存在,那么我將刪除我的答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM