質問編集履歴

1

現在のソースファイルを追記しました。

2019/11/15 05:50

投稿

mori_C
mori_C

スコア34

test CHANGED
File without changes
test CHANGED
@@ -25,3 +25,101 @@
25
25
  指定フォルダに、同じフォルダがあっても上書きするようなものを
26
26
 
27
27
  作りたいのですが、何か良い方法はありますか?
28
+
29
+
30
+
31
+ 追記します。クリップボードにコピーしたものが、ファイルであれば
32
+
33
+ 動作するものができたのですが(マイクロソフトの解説やWebのサンプルコードを参考にしたのですが、わかりません)
34
+
35
+ フォルダ(中にファイル等が入っている)をペーストしたいのですが、
36
+
37
+ うまく拡張できません。
38
+
39
+
40
+
41
+ \testpフォルダにファイルがコピーされます。
42
+
43
+
44
+
45
+   sub ペースト()
46
+
47
+
48
+
49
+ call PasteRun("C:\testp")
50
+
51
+   
52
+
53
+   end sub
54
+
55
+ Public Shared Sub PasteRun(ByVal FolderDir As String)
56
+
57
+
58
+
59
+ 'クリップボードのデータを取得する
60
+
61
+ Dim data As IDataObject = Clipboard.GetDataObject()
62
+
63
+
64
+
65
+
66
+
67
+ 'クリップボードにファイルドロップ形式のデータがあるか確認
68
+
69
+ If Not data Is Nothing AndAlso data.GetDataPresent(DataFormats.FileDrop) Then
70
+
71
+ 'コピーされたファイルのリストを取得する
72
+
73
+ Dim files As String() = DirectCast(data.GetData(DataFormats.FileDrop), String())
74
+
75
+
76
+
77
+ CopyFolserToDirectory(files, FolderDir, False)
78
+
79
+
80
+
81
+ End If
82
+
83
+
84
+
85
+ End Sub
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+ Public Shared Sub CopyFolserToDirectory(ByVal sourceFiles As String(), _
94
+
95
+ ByVal FolderDir As String, ByVal move As Boolean)
96
+
97
+ For Each sourcePath As String In sourceFiles
98
+
99
+ 'コピー先のパスを決定
100
+
101
+ Dim destName As String = System.IO.Path.GetFileName(sourcePath)
102
+
103
+ Dim destPath As String = System.IO.Path.Combine(FolderDir, destName)
104
+
105
+
106
+
107
+
108
+
109
+ If Not move Then
110
+
111
+ 'ファイルをコピー
112
+
113
+ System.IO.File.Copy(sourcePath, destPath)
114
+
115
+ Else
116
+
117
+ 'ファイルを移動
118
+
119
+ System.IO.File.Move(sourcePath, destPath)
120
+
121
+ End If
122
+
123
+ Next
124
+
125
+ End Sub