[英]Move files from Listview to new directory in vb.net
我正在尝试编写一个代码,用户可以在其中将文件添加到列表视图。 然后,必须将这些文件移动到用户指定的位置。 我无法使用的是添加到列表视图的文件的文件路径。 这是用于移动文件的代码:
sPath = My.Settings.DefaultPath & ComboBox1.Text & "\" & ComboBox2.Text & "\"
If txtOnderwerp.Text = "" Then
If ComboBox3.Text = "Make your choice..." Then
MsgBox("Select subject!", MsgBoxStyle.Information)
Else
Try
For Each item As ListViewItem In ListView1.Items
My.Computer.FileSystem.CopyFile(item, sPath & ComboBox3.Text & "\" & item.Text, FileIO.UIOption.AllDialogs)
MsgBox("Copy succesfull.", MsgBoxStyle.Information)
ListView1.Items.Clear()
Me.Close()
Next
Catch ex As Exception
MessageBox.Show("Error copying file: " & ex.Message)
End Try
End If
End If
上面的代码指出了一个错误,因为“ item”不是FilsSystem.Copy命令的字符串。 用户可以使用以下代码将文件添加到列表视图:
Using ofd As New OpenFileDialog
ofd.Multiselect = True
If ofd.ShowDialog = DialogResult.OK Then
For Each fn As String In ofd.FileNames
Dim fi As New IO.FileInfo(fn)
Dim icons As Icon = SystemIcons.WinLogo
Dim li As New ListViewItem(fi.Name, 1)
If Not (ImageList1.Images.ContainsKey(fi.Extension)) Then
icons = System.Drawing.Icon.ExtractAssociatedIcon(fi.FullName)
ImageList1.Images.Add(fi.Extension, icons)
End If
icons = Icon.ExtractAssociatedIcon(fi.FullName)
ImageList1.Images.Add(icons)
ListView1.Items.Add(fi.Name, fi.Extension)
Next
End If
End Using
谢谢安德鲁·莫蒂默(Andrew Mortimer)的建议。
ListView的代码:Dim str(2)As String Dim itm As ListViewItem
Using ofd As New OpenFileDialog
ofd.Multiselect = True
If ofd.ShowDialog = DialogResult.OK Then
For Each fn As String In ofd.FileNames
Dim fi As New IO.FileInfo(fn)
Dim icons As Icon = SystemIcons.WinLogo
'Dim li As New ListViewItem(fi.Name, 1)
If Not (ImageList1.Images.ContainsKey(fi.Extension)) Then
icons = System.Drawing.Icon.ExtractAssociatedIcon(fi.FullName)
ImageList1.Images.Add(fi.Extension, icons)
End If
str(0) = fi.Name
str(1) = fi.FullName
icons = Icon.ExtractAssociatedIcon(fi.FullName)
ImageList1.Images.Add(icons)
itm = New ListViewItem(str)
ListView1.Items.Add(itm)
Next
End If
End Using
在列表视图中复制项目的代码:
Dim str As String
Dim copyfilename As String
Dim NewDir As String
Try
NewDir = My.Settings.DefaultPath & ComboBox1.Text & "\" & ComboBox2.Text & "\" & txtOnderwerp.Text
My.Computer.FileSystem.CreateDirectory(NewDir)
For Each item As ListViewItem In ListView1.Items
copyfilename = item.Text
str = item.SubItems.Item(1).Text
My.Computer.FileSystem.CopyFile(str, NewDir & "\" & copyfilename)
MsgBox("Kopiëren is gelukt.", MsgBoxStyle.Information)
ListView1.Items.Clear()
Me.Close()
Next
Catch ex As Exception
MessageBox.Show("Error: " & ex.Message)
End Try
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.