将文件从一个文件夹移动到另一个VB.Net
我正在试图找出如何移动5个文件 settings.txt 设置2.txt 设置3.txt 设置4.txt 设置5.txt 从一个文件夹到另一个文件夹 虽然我知道文件名和文件夹名,但我不知道该文件夹在用户计算机上的位置 我的想法是使用FolderBrowseDialog,用户可以浏览到文件夹所在的位置,然后当按下OK时,它会将文件复制到目标文件夹,覆盖其中的内容 这就是我目前所拥有的。将文件从一个文件夹移动到另一个VB.Net,vb.net,Vb.net,我正在试图找出如何移动5个文件 settings.txt 设置2.txt 设置3.txt 设置4.txt 设置5.txt 从一个文件夹到另一个文件夹 虽然我知道文件名和文件夹名,但我不知道该文件夹在用户计算机上的位置 我的想法是使用FolderBrowseDialog,用户可以浏览到文件夹所在的位置,然后当按下OK时,它会将文件复制到目标文件夹,覆盖其中的内容 这就是我目前所拥有的。 Dim FolderPath As String Dim result As Windows.Forms
Dim FolderPath As String
Dim result As Windows.Forms.DialogResult = FolderBrowserImport.ShowDialog()
If result = DialogResult.OK Then
FolderPath = FolderBrowserImport.SelectedPath & "\"
My.Computer.FileSystem.CopyFile(
FolderPath & "settings.txt", "c:\test\settings.txt", overwrite:=True)
ElseIf result = DialogResult.Cancel Then
Exit Sub
End If
有没有一种方法可以让它一次复制所有5个文件,而不是运行5次一旦您选择了文件夹,使用
For
循环来建立您要查找的文件的名称。使用System.IO.File.Exists()
查看它们是否存在。使用System.IO.Path.Combine()
将文件夹与文件名正确组合
下面是一个完整的示例(无异常处理,应添加):
选定文件夹后,使用
For
循环建立要查找的文件的名称。使用System.IO.File.Exists()
查看它们是否存在。使用System.IO.Path.Combine()
将文件夹与文件名正确组合
下面是一个完整的示例(无异常处理,应添加):
我知道IdleMind为什么推荐他们这样做,但如果只列出文件名,可能会使代码更可读:
Imports System.IO
...
Dim result = FolderBrowserImport.ShowDialog()
If result <> DialogResult.OK Then Exit Sub
For Each s as String in {"settings.txt", "settings2.txt", "settings3.txt", "settings4.txt", "settings5.txt" }
File.Copy( _
Path.Combine(FolderBrowserImport.SelectedPath, s), _
Path.Combine("c:\test", s), _
True _
)
Next s
小贴士:
- 执行
通常比执行如果不好,则退出Sub
——在开始时测试所有已知的故障条件,如果有任何故障,则退出Sub,而不是安排大量缩进代码如果好,则退出(大量缩进代码)如果结束
- 使用
组合路径和文件名等;它知道如何处理散乱的Path.Combine
字符\
- 使用导入导入名称空间,而不是一直拼写所有内容(
-winforms应用程序可能已经在分部类中导入了所有必需的内容,因此您可以说System.Windows.Forms.DialogResult
。如果您得到一条红色的曲线,请指向相邻的灯泡,然后选择导入System.Windows/Forms等)DialogResult
Imports System.IO
...
Dim result = FolderBrowserImport.ShowDialog()
If result <> DialogResult.OK Then Exit Sub
For Each s as String in {"settings.txt", "settings2.txt", "settings3.txt", "settings4.txt", "settings5.txt" }
File.Copy( _
Path.Combine(FolderBrowserImport.SelectedPath, s), _
Path.Combine("c:\test", s), _
True _
)
Next s
小贴士:
- 执行
通常比执行如果不好,则退出Sub
——在开始时测试所有已知的故障条件,如果有任何故障,则退出Sub,而不是安排大量缩进代码如果好,则退出(大量缩进代码)如果结束
- 使用
组合路径和文件名等;它知道如何处理散乱的Path.Combine
字符\
- 使用导入导入名称空间,而不是一直拼写所有内容(
-winforms应用程序可能已经在分部类中导入了所有必需的内容,因此您可以说System.Windows.Forms.DialogResult
。如果您得到一条红色的曲线,请指向相邻的灯泡,然后选择导入System.Windows/Forms等)DialogResult
Dim文件(4)称为新字符串文件(0)=“settings.txt”
文件(1)=“settings2.txt”
…但是使用初始值设定项是“创建一个数组并返回它”的快捷方式-您可以想象VB编译器会为您将初始值设定项重写为长格式。此外,我们还可以将其捕获到变量Dim files={“a”,“b”}
然后对文件中的每个f说——只是我们不需要将数组保存在一个单独的变量中;只需要它来循环,因为要知道,使用第二个较短的代码,您将不知道是否丢失了任何文件;它只会愉快地对模式找到的文件执行操作……可能没有。这一点很好;这可能是一个积极的或消极的事情-前一个代码将崩溃,如果它找不到其中一个文件..它还可能作用于比具有固定文件名listCaius Jard的代码更多的文件,这正是我所寻找的这叫做数组吗?是的,这是一个数组初始值设定项。这里有完整的文档:数组初始值设定项本身不是数组;它们是创建数组的一种快捷方式。你可以将长格式的Dim文件(4)称为新字符串文件(0)=“settings.txt”
文件(1)=“settings2.txt”
…但是使用初始值设定项是“创建一个数组并返回它”的快捷方式-你可以想象VB编译器会为你将初始值设定项重写为长格式。此外,我们还可以将其捕获到变量Dim files={“a”,“b”}
然后对文件中的每个f说——只是我们不需要将数组保存在一个单独的变量中;只需要它来循环,因为要知道,使用第二个较短的代码,您将不知道是否丢失了任何文件;它只会愉快地对模式找到的文件执行操作……可能没有。这一点很好;这可能是一个积极的或消极的事情-前一个代码将崩溃,如果它找不到其中一个文件..它也可能对更多的文件比代码有固定的文件名列表
For Each s as String in Directory.GetFiles(FolderBrowserImport.SelectedPath, "settings*.txt", SearchOption.TopDirectoryOnly)
File.Copy(s, Path.Combine("c:\test", Path.GetFilename(s)), True)
Next s