Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何使用StreamWriter将文件保存在所需路径中_Vb.net - Fatal编程技术网

Vb.net 如何使用StreamWriter将文件保存在所需路径中

Vb.net 如何使用StreamWriter将文件保存在所需路径中,vb.net,Vb.net,通过使用StreamWriter提供路径,我正在我的目录中保存一个.csv文件。现在,我想让用户选择保存该文件所需的路径。怎么可能呢。帮帮我 Dim objStreamWriter = New IO.StreamWriter("c:\FaultTypesByMonth.csv") Dim Str As String Dim i As Integer Dim j As Integer Dim headertext1(rs

通过使用StreamWriter提供路径,我正在我的目录中保存一个.csv文件。现在,我想让用户选择保存该文件所需的路径。怎么可能呢。帮帮我

Dim objStreamWriter = New IO.StreamWriter("c:\FaultTypesByMonth.csv")
        Dim Str As String
        Dim i As Integer
        Dim j As Integer       
        Dim headertext1(rsTerms.Columns.Count) As String
        Dim k As Integer = 0
        Dim arrcols As String = Nothing
        For Each column As DataColumn In TempTab.Columns
            headertext1(k) = column.ColumnName
            arrcols += column.ColumnName.ToString() + ","c
            k += 1
        Next

        objStreamWriter.WriteLine(arrcols)
        For i = 0 To (TempTab.Rows.Count - 1)
            For j = 0 To (TempTab.Columns.Count - 1)

                'this IF statement stops it from adding a comma after the last field
                If j = (TempTab.Columns.Count - 1) Then
                    Str = (TempTab.Rows(i)(j).ToString)
                Else
                    Str = (TempTab.Rows(i)(j).ToString & ",")
                End If
                objStreamWriter.Write(Str)
            Next
            objStreamWriter.WriteLine()
        Next
        objStreamWriter.Close()

' After save the file in C:/  I want to save the same file in any other Path for my convenience.
'------------------------------------------------------------------------------------------------

        Dim sd As New SaveFileDialog
        sd.Filter = "CSV Files (*.csv)|*.csv"
        sd.FileName = "FaultTypesByMonth"
        If sd.ShowDialog = Windows.Forms.DialogResult.OK Then
            'save the file here
            Debug.WriteLine("Save file location:" + sd.FileName)
        End If

如果它是一个控制台应用程序,您可以从中读取路径参数

如果是GUI应用程序,则可以显示“保存文件”对话框,在WinForms中使用

要将文件保存到不同的位置,请将编写器代码放入以文件路径为参数的函数中:

 Sub SaveFile(filePath As String)
     Dim objStreamWriter = New IO.StreamWriter(filePath)
     ' ... your code here
 End Sub

 Sub ButtonClick
     SaveFile("c:\FaultTypesByMonth.csv")
     ' ... SaveFileDialog code
     SaveFile(sd.Filename)
 End Sub
要复制文件,请使用:

使用

简单的例子:

Private Sub SaveFile()
    Dim sd As New SaveFileDialog
    sd.Filter = "CSV Files (*.csv)|*.csv"
    If sd.ShowDialog = Windows.Forms.DialogResult.OK Then
        'save the file here
        Debug.WriteLine("Save file location:" + sd.FileName)
    End If
End Sub

获取用户输入并将路径提供给编写器,将路径替换为相关的用户部分。Allan先生感谢您的回复,但我不理解您的意图。在将文件保存到某个路径后,我如何打开该文件,以及如何选择所需路径来保存它。请简要解释。@user3463529在您的表单中使用
SaveFileDialog
control@user3463529将文件编写代码设置为一个函数(Sub),该函数将路径作为参数,然后可以使用用户输入的文件路径调用它。或者使用File.Copy将文件从源路径复制到用户指定的路径。您好,Wilko,感谢您的回复,我想将文件保存在任何其他位置,该位置已由我的应用程序保存,该文件由我的应用程序制作并保存在相应的驱动器中。接下来,现在我想将该文件保存在我所需的路径中。您提供的代码只会打开带有文件名的对话框,但不会将文件保存在所需路径中。您可能需要设置
InitialDirectory
属性。请看一下文档。请不要通过插入自己的代码来编辑答案。改为修改原始问题。PS最初最好将现有代码添加到问题中,因为这有助于每个人看到问题。您好,请检查上面的“我的命令”。如果要将文件副本保存在用户指定的路径中,请使用与最初使用新路径编写文件相同的代码,或者使用file.copy复制文件。如果是,我必须使用哪个名称空间。是的,File.Copy从.Net 2.0开始(包括VB.Net 2005)就可以使用,并且它位于System.IO名称空间中(与StreamWriter一样),多亏了所有,最终得到了结果
Private Sub SaveFile()
    Dim sd As New SaveFileDialog
    sd.Filter = "CSV Files (*.csv)|*.csv"
    If sd.ShowDialog = Windows.Forms.DialogResult.OK Then
        'save the file here
        Debug.WriteLine("Save file location:" + sd.FileName)
    End If
End Sub