teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

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

2019/11/15 05:50

投稿

mori_C
mori_C

スコア34

title CHANGED
File without changes
body CHANGED
@@ -11,4 +11,53 @@
11
11
  と、コピーするものは簡単に作成できたのですが、
12
12
  ペーストするものがうまく書けません。
13
13
  指定フォルダに、同じフォルダがあっても上書きするようなものを
14
- 作りたいのですが、何か良い方法はありますか?
14
+ 作りたいのですが、何か良い方法はありますか?
15
+
16
+ 追記します。クリップボードにコピーしたものが、ファイルであれば
17
+ 動作するものができたのですが(マイクロソフトの解説やWebのサンプルコードを参考にしたのですが、わかりません)
18
+ フォルダ(中にファイル等が入っている)をペーストしたいのですが、
19
+ うまく拡張できません。
20
+
21
+ \testpフォルダにファイルがコピーされます。
22
+
23
+   sub ペースト()
24
+
25
+ call PasteRun("C:\testp")
26
+   
27
+   end sub
28
+ Public Shared Sub PasteRun(ByVal FolderDir As String)
29
+
30
+ 'クリップボードのデータを取得する
31
+ Dim data As IDataObject = Clipboard.GetDataObject()
32
+
33
+
34
+ 'クリップボードにファイルドロップ形式のデータがあるか確認
35
+ If Not data Is Nothing AndAlso data.GetDataPresent(DataFormats.FileDrop) Then
36
+ 'コピーされたファイルのリストを取得する
37
+ Dim files As String() = DirectCast(data.GetData(DataFormats.FileDrop), String())
38
+
39
+ CopyFolserToDirectory(files, FolderDir, False)
40
+
41
+ End If
42
+
43
+ End Sub
44
+
45
+
46
+
47
+ Public Shared Sub CopyFolserToDirectory(ByVal sourceFiles As String(), _
48
+ ByVal FolderDir As String, ByVal move As Boolean)
49
+ For Each sourcePath As String In sourceFiles
50
+ 'コピー先のパスを決定
51
+ Dim destName As String = System.IO.Path.GetFileName(sourcePath)
52
+ Dim destPath As String = System.IO.Path.Combine(FolderDir, destName)
53
+
54
+
55
+ If Not move Then
56
+ 'ファイルをコピー
57
+ System.IO.File.Copy(sourcePath, destPath)
58
+ Else
59
+ 'ファイルを移動
60
+ System.IO.File.Move(sourcePath, destPath)
61
+ End If
62
+ Next
63
+ End Sub