我制作了一个搜索程序,用于搜索计算机中的文件列表,然后将该文件复制到商店文件夹中。文件名可以是“* 11 * 2.txt”只要程序找到此模式,它就应该复制到store文件夹。问题是我在搜索之前不知道文件的确切名称,我不想重命名文件,我不知道如何保存文件。请帮忙
我使用以下内容查找文件,该文件正常工作
Public Sub DirSearch(ByVal sDir As String, ByVal FileName As String)
Dim To_Path As String
To_Path = Form1.TextBox5.Text
For Each foundFile As String In My.Computer.FileSystem.GetFiles(sDir, FileIO.SearchOption.SearchAllSubDirectories, FileName)
Copy2Local(foundFile, To_Path)
Next
End Sub
这是Copy2Local的当前版本(注意:它无法正常工作)
Public Sub Copy2Local(ByVal Copy_From_Path As String, ByVal Copy_To_Path As String)
' Specify the directories you want to manipulate.
Try
Dim fs As FileStream = File.Create(Copy_From_Path)
fs.Close()
' Copy the file.
File.Copy(Copy_From_Path, Copy_To_Path)
Catch
End Try
End Sub
答案 0 :(得分:3)
首先,您应该检查ToPath
是否是有效目录,因为它来自TextBox
:
Dim isValidDir = Directory.Exists(ToPath)
其次,您可以使用Path.Combine
从单独的(子)目录或文件名创建路径:
Dim copyToDir = Path.GetDirectoryName(Copy_To_Path)
Dim file = Path.GetFileName(Copy_From_Path)
Dim newPath = Path.Combine(copyToDir, file)
http://msdn.microsoft.com/en-us/library/system.io.path.aspx
(免责声明:从手机输入)
答案 1 :(得分:0)
要回答您的问题:您可以使用Path.GetFileName获取文件名。例如:
Dim fileName As String = Path.GetFileName(foundFile)
但是,您的代码还存在许多其他问题:
下面,
Dim fs As FileStream = File.Create(Copy_From_Path)
fs.Close()
你是overwriting your source file。这似乎不是一个好主意。 ; - ) 在这里,
Try
...
Catch
' Do Nothing
End Try
您正在丢弃可帮助您查找和诊断问题的异常。不要那样做。它使调试成为一场噩梦。
答案 2 :(得分:0)
在vb.net中,我使用以下代码查找文件名
Textbox1.Text = New FileInfo(OpenFileDialog.FileName).Name
此代码在打开文件对话框中可以正常工作