Я пытаюсь сохранить содержимое textbox1 в текстовый файл на свой компьютер.
Что я хочу сделать, так это создать каталог для сохранения, и когда он будет настроен, я сохраню содержимое textbox1
в этот текстовый файл.
Не один раз я хочу добавить содержимое TextBox в тот же файл после.
Button2
: Пытаюсь просмотреть и создать текстовый файл.Button4
(1-й щелчок): эта кнопка сохранит содержимое textbox1
в созданный текстовый файл.Button4
(2-й щелчок)": это добавит текущее содержимое textbox1
в тот же текстовый файл.
Но я хочу иметь возможность менять каталог, когда захочу.
Я также хочу выбрать путь вне кода или вне текстового поля.
Это означает, что мне нужна кнопка, которая позволит мне выбрать папку, в которой я хочу создать текстовый файл.
Вторая кнопка позволит мне сохранить содержимое 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
), чтобы сохранить путь к последнему сохраненному файлу.lastSaveFileName
lastSaveFileName
устанавливается в пустую строку, поэтому вы не можете добавлять новый текст в этот файл.sfd.OverwritePrompt = True
и используйте File.AppendAllText()
вместо File.WriteAllText()
lastSaveFileName
Я переименовал кнопки в SaveFile
и UpdateFile
, а текстовое поле — в TextContent
: всегда лучше назначать понятные имена элементам управления.
Объект SaveFileDialog должен быть объявлен с помощью инструкции Using
, так как вам нужно избавиться от него, когда он закрыт (окно, показанное с помощью ShowDialog()
, не может избавиться от себя. Объявление одноразового объекта с помощью инструкции Using
гарантирует, что объект будет удален, даже если тем временем возникает исключение; в большинстве случаев)
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