簡體   English   中英

如何創建文本文件並將 append 文本添加到現有文件?

[英]How to create a text file and append text to the existing file?

我正在嘗試將我的 textbox1 內容保存到我的計算機的文本文件中。
我想做的是創建一個保存目錄,當它設置好后,我會將textbox1的內容保存到那個 txt 文件中。
不止一次,我想把append后TextBox的內容放到同一個文件中。

Button2 :嘗試瀏覽並創建一個 txt 文件。
Button4 4(第一次單擊):此按鈕會將文本textbox1 1 的內容保存到創建的 txt 文件中。
Button4 (2nd click)”:這會將textbox1的當前內容添加到同一個 txt 文件。

但我希望能夠隨時更改目錄。
我還想選擇代碼外或文本框外的路徑。
意思是,我想要一個按鈕,讓我選擇一個文件夾,我想在其中創建一個文本文件。
第二個按鈕將讓我將textbox1內容保存到創建的文本文件中。

這是我的一些代碼,但我不知道我是否做對了,因為它現在正在做我想做的事。 請幫忙。

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim isave As New SaveFileDialog
        isave.Filter = "txt files (*.txt) |*.txt"
        isave.FilterIndex = 2
        isave.RestoreDirectory = False

        If isave.ShowDialog() = DialogResult.OK Then
            IO.File.WriteAllText(isave.FileName, TextBox1.Text)
        End If
    End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim theText As String
        theText = TextBox1.Text
        IO.File.AppendAllText("isave", Environment.NewLine & theText)
End Sub

一種可能的進行方式:

  • 使用字段(此處為lastSaveFileName )存儲上次保存的文件的路徑。
  • 使用 SaveFileDialog 獲取文件路徑,將結果存儲在lastSaveFileName
    • SaveFileDialog 要求確認文件是否已經存在。 用戶可以選擇覆蓋或不覆蓋
    • 如果用戶選擇不覆蓋現有文件(因此取消操作),則lastSaveFileName設置為空字符串,因此您不能 append 新文本到此文件。
      如果這不是您期望的行為(即,您想保留和更新在以前的session中創建的文件),則刪除sfd.OverwritePrompt = True並使用File.AppendAllText()而不是File.WriteAllText()
  • 要更新所選文件,添加更多文本,請使用之前存儲的lastSaveFileName引用
    • 如果文件不存在——此時——或者從未指定過,提示用戶先創建文件。 您還可以將文件路徑存儲在項目的設置中

我已將按鈕重命名為SaveFileUpdateFile ,將 TextBox 重命名為TextContent :最好為控件分配有意義的名稱

SaveFileDialog object 必須Using語句聲明,因為您需要在關閉時處理它(使用ShowDialog()顯示的 window 無法自行處理。 Using語句聲明一次性 object,確保 object 甚至被處理如果同時引發異常;大多數時候)


Imports System.IO

Private lastSaveFileName As String = String.Empty

Private Sub SaveFile_Click(sender As Object, e As EventArgs) Handles SaveFile.Click
    lastSaveFileName = GetSaveFileName(lastSaveFileName)
    If Not String.IsNullOrEmpty(lastSaveFileName) Then
        File.WriteAllText(lastSaveFileName, TextContent.Text)
    End If
End Sub

Private Sub UpdateFile_Click(sender As Object, e As EventArgs) Handles UpdateFile.Click
    If Not String.IsNullOrEmpty(lastSaveFileName) AndAlso File.Exists(lastSaveFileName) Then
        File.AppendAllText(lastSaveFileName, Environment.NewLine & TextContent.Text)
    Else
        MessageBox.Show(
            Me, "The file has not been created yet [other instructions]",
            "Save file missing", MessageBoxButtons.OK, MessageBoxIcon.Information
        )
    End If
End Sub

Private Function GetSaveFileName(suggestedName As String) As String
    Using sfd As New SaveFileDialog()
        sfd.Filter = "Text Files (*.txt) |*.txt"
        sfd.FileName = suggestedName
        sfd.OverwritePrompt = True
        If sfd.ShowDialog() = DialogResult.OK Then
            Return sfd.FileName
        End If
        Return String.Empty
    End Using
End Function

暫無
暫無

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

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