将一个文件附加到另一个文件

Append one file into another file

我已经为此做了一些工作,我发现的所有示例都是将给定的字符串附加到文件中,但我一直没能成功地附加整个文件在文件的末尾。一切都在使用不符合我需求的 .appendAllText 或 appendText。

我的文件是.sgm。在我的代码中,我首先获取所有 sgm 文件,然后我检查该文件是否以 _Ch#.

结尾

我已准备好将文件附加到母版,但到目前为止,我所能做的就是将文件名的字符串文本附加到母版的末尾。

非常感谢您的帮助。 最大值

Public Class Form1
Private Sub btnImport_Click(sender As Object, e As EventArgs) Handles btnImport.Click
    Dim searchDir As String = txtSGMFile.Text 'input field for user
    'Get all the sgm files in the directory specified
    Dim fndFiles = Directory.GetFiles(searchDir, "*.sgm")
    'Set up the regular expression you will make as the condition for the file
    Dim rx = New Regex(".*_Ch\d\.sgm")
    Dim ch1 = New Regex(".*_Ch[1]\.sgm")
    Dim existingFile = searchDir & "\Bld1_Master_Document.sgm"


    'Loop through each file found by the REGEX
    For Each file In fndFiles
        If rx.IsMatch(file) Then
            If ch1.IsMatch(file) Then
                Dim result = Path.GetFileName(file)
                Dim fileToCopy = searchDir & "\" & result

                'THIS IS WHERE I WANT TO APPEND fileToCopy INTO existingFile
                System.IO.File.AppendAllText(fileToCopy, existingFile)


                MessageBox.Show("File Copied")
            End If
            'MsgBox(file)
        End If
    Next file
    Close()
End Sub

您可以将文件内容读入字符串,然后像这样使用 AppendAllText:

Imports System.IO
' ...

Dim fileToCopy = Path.Combine(searchDir, result)

'THIS IS WHERE I WANT TO APPEND fileToCopy INTO existingFile
Dim fileContent = File.ReadAllText(fileToCopy)

File.AppendAllText(existingFile, fileContent)

使用 Path.Combine 比连接字符串要好一些。

您可以使用如下方法逐字追加所有字节:

Using fs As New System.IO.FileStream(existingFile, IO.FileMode.Append)
    Dim bytes() As Byte = System.IO.File.ReadAllBytes(fileToCopy)
    fs.Write(bytes, 0, bytes.Length)
End Using