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