🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

1回答

1820閲覧

クリップボードにコピーしてあるフォルダを指定場所にペーストさせるには

mori_C

総合スコア34

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2019/11/15 04:16

編集2019/11/15 05:50

クリップボードにフォルダをコピーし、
クリップボードから指定のフォルダにペーストするプログラムを組もうとしています。

Web上のソースファイルを参考に

Dim fld As New System.Collections.Specialized.StringCollection() fld.Add("C:\test") 'クリップボードにコピーする Clipboard.SetFileDropList(fld)

と、コピーするものは簡単に作成できたのですが、
ペーストするものがうまく書けません。
指定フォルダに、同じフォルダがあっても上書きするようなものを
作りたいのですが、何か良い方法はありますか?

追記します。クリップボードにコピーしたものが、ファイルであれば
動作するものができたのですが(マイクロソフトの解説やWebのサンプルコードを参考にしたのですが、わかりません)
フォルダ(中にファイル等が入っている)をペーストしたいのですが、
うまく拡張できません。

\testpフォルダにファイルがコピーされます。

  sub ペースト()

call PasteRun("C:\testp")

  
end sub
Public Shared Sub PasteRun(ByVal FolderDir As String)

'クリップボードのデータを取得する Dim data As IDataObject = Clipboard.GetDataObject() 'クリップボードにファイルドロップ形式のデータがあるか確認 If Not data Is Nothing AndAlso data.GetDataPresent(DataFormats.FileDrop) Then 'コピーされたファイルのリストを取得する Dim files As String() = DirectCast(data.GetData(DataFormats.FileDrop), String()) CopyFolserToDirectory(files, FolderDir, False) End If End Sub Public Shared Sub CopyFolserToDirectory(ByVal sourceFiles As String(), _ ByVal FolderDir As String, ByVal move As Boolean) For Each sourcePath As String In sourceFiles 'コピー先のパスを決定 Dim destName As String = System.IO.Path.GetFileName(sourcePath) Dim destPath As String = System.IO.Path.Combine(FolderDir, destName) If Not move Then 'ファイルをコピー System.IO.File.Copy(sourcePath, destPath) Else 'ファイルを移動 System.IO.File.Move(sourcePath, destPath) End If Next End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Y.H.

2019/11/15 05:32

> 指定フォルダに、同じフォルダがあっても上書きするようなものを作りたいのですが 指定フォルダに同じフォルダが無い場合は正常動作するものを 作成済みということでよろしいでしょうか? この場合、そのソースを質問に記載ください。
mori_C

2019/11/15 05:55

言葉足らずで失礼しました。 ファイル自体をペーストする方法は、いろいろ参考にして できたのですが、フォルダ単位というのが知識が不足していて 難しくわかりませんでした。 上書きというのは、MUSTではありませんが、選択できるのであれば 上書きしたいと思います。
workaholist

2019/11/15 07:19 編集

Googleで「VB.NET フォルダ コピー 上書き」と検索したら色々出ますがだめですか?
mori_C

2019/11/15 07:25

通常PC上に存在するフォルダを別のフォルダにコピー上書きなら いろいろな方法があると思うのですが、 クリップボードにコピーしたフォルダを 別のフォルダへ移動ということをしたいのですが、 おそらくクリップボード上のフォルダを扱う方法が 私には理解できていないのです。 やりたいことは、右クリックでペーストというだけなのですが、 プログラムにできる力量がありません。
workaholist

2019/11/15 07:56

①クリップボードのフォルダパスを取得(Clipboard.GetFileDropListなど) ②「指定のフォルダにペーストする」とあるので貼り付け先のフォルダパスは取得済み ③①②でコピー元とコピー先のパスはわかっているので上記のGoogle検索結果で上書きコピー ではないのですか?
mori_C

2019/11/15 08:01

複数ファイルできますが、フォルダコピーがうまくいきません。
workaholist

2019/11/15 08:34

イマイチ何ができないのかわかりません。 コピー元とコピー先のパスはわかっているんですよね? あるパスのフォルダをあるパスにコピーする方法がわからないのですか?
guest

回答1

0

ペーストされた、というイベントを拾ってそれをどうするか、というのはあなたがコードを組む必要があります
指定フォルダに同じフォルダがあっても上書きするようなコードを組んでください

投稿2019/11/15 04:29

y_waiwai

総合スコア88038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問