VB.NET自动保存多个文本文件

VB.NET自动保存多个文本文件,vb.net,loops,Vb.net,Loops,所以我声明保存文本文件而不使用保存文件对话框 Private Sub strt2_Click(sender As Object, e As EventArgs) Handles strt2.Click Directory.CreateDirectory("Result/Combolist") Using sw As System.IO.StreamWriter = New System.IO.StreamWriter("Result/Combolist/" &am

所以我声明保存文本文件而不使用保存文件对话框

Private Sub strt2_Click(sender As Object, e As EventArgs) Handles strt2.Click
        Directory.CreateDirectory("Result/Combolist")
        Using sw As System.IO.StreamWriter = New System.IO.StreamWriter("Result/Combolist/" & "\Email&Pass[" & time & "].txt")
            sw.WriteLine(rslt1.Text)
        End Using
    End Sub

所以我想让保存的文本文件不取代可以保存多个文本文件的文本文件,我想每次单击“开始”按钮都创建一个新的保存文本文件。我可以使用什么代码?

似乎您正在尝试使用当前时间来区分文件名,这通常是合理的,因此类似这样的方法可能会更好:

Private Sub strt2\u Click(发送方作为对象,e作为事件参数)处理strt2。单击
Dim timeStamp=DateTime.UtcNow.ToString(“yyyyMMdd HHmmss”)
Dim fileName=“Email&Pass[”&timeStamp&“].txt”
Dim baseDir=Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Dim resultDir=(Directory.CreateDirectory(Path.Combine(baseDir,“结果\组合列表”))).FullName
File.writealText(Path.Combine(resultDir,fileName),rslt1.Text)
端接头
在使用文件时,最好使用绝对路径,否则当它在其他地方查找到您认为它正在查找的位置时,可能会造成混淆

如果您想获取文件名中包含最新时间的文件,可以执行以下操作:

Imports System.IO
Imports System.Text.RegularExpressions

' other code here maybe '

Private Sub rslt_Click(sender As Object, e As EventArgs) Handles rslt.Click
    Dim baseDir = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
    Dim resultDir = Path.Combine(baseDir, "Result\Combolist")

    Dim latestTimeStamp = ""
    Dim re As New Regex("^Email&Pass\[([0-9-]+)\]$")
    For Each f In Directory.EnumerateFiles(resultDir, "*.txt").Select(Function(g) Path.GetFileNameWithoutExtension(g))
        If re.IsMatch(f) Then
            Dim m = re.Match(f)
            If m.Groups(1).Captures(0).Value > latestTimeStamp Then
                latestTimeStamp = m.Groups(1).Captures(0).Value
            End If
        End If
    Next

    If latestTimeStamp <> String.Empty Then
        Dim latestFile = Path.Combine(resultDir, "Email&Pass[" & latestTimeStamp & "].txt")
        Process.Start(latestFile)
    End If

End Sub
Imports System.IO
导入System.Text.RegularExpressions
'这里可能有其他代码'
私有子rslt\u单击(发送者作为对象,e作为事件参数)处理rslt。单击
Dim baseDir=Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Dim resultDir=Path.Combine(baseDir,“结果\组合列表”)
Dim latestTimeStamp=“”
Dim re作为新的正则表达式(“^Email&Pass\[([0-9-]+)\]$”)
对于Directory.EnumerateFiles(resultDir,“*.txt”)中的每个f。选择(函数(g)路径.GetFileNameWithoutExtension(g))
如果重新匹配(f),则
尺寸m=重新匹配(f)
如果m.Groups(1).Captures(0).Value>latestTimeStamp,则
latestTimeStamp=m.Groups(1).捕获(0).值
如果结束
如果结束
下一个
如果latestTimeStamp字符串为空,则
Dim latestFile=Path.Combine(resultDir,“Email&Pass[”&latestTimeStamp&“].txt”)
Process.Start(最新文件)
如果结束
端接头

您的问题有点让人困惑。你说你想“自动保存”文本文件,然后紧接着你说“每次你点击一个按钮,它就会创建一个新的自动保存文本文件?”点击一个按钮是手动的。无论如何,如果您试图自动保存一个文件,但同时单击一个按钮手动保存,您可能希望将保存代码放入一个子或函数中,然后从计时器调用该子/函数,还有您要单击的按钮。我的意思是,对于自动保存,无需使用“保存文件”对话框检查以下值:
Application.UserAppDataPath
Application.LocalUserAppDataPath
Application.CommonAppDataPath
。你有权写入这些路径。为什么我单击按钮时没有文本文件他没有创建新的文本文件我的目录是empty@Gracia它应该位于当前用户的Documents文件夹中的Result\Combolist中。我如何传输与应用程序位于同一文件夹中的目录,而创建文本文件通常是您无法做到的这是因为普通用户无法写入程序文件目录(这是一种反恶意软件)。如果您查看了中的可用内容,那么您可能会找到一个存放数据的好位置,或者在
环境.SpecialFolder.ApplicationData
中创建一个目录,其中包含您的姓名或程序名。