クリップボードにフォルダをコピーし、
クリップボードから指定のフォルダにペーストするプログラムを組もうとしています。
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
> 指定フォルダに、同じフォルダがあっても上書きするようなものを作りたいのですが
指定フォルダに同じフォルダが無い場合は正常動作するものを
作成済みということでよろしいでしょうか?
この場合、そのソースを質問に記載ください。
言葉足らずで失礼しました。
ファイル自体をペーストする方法は、いろいろ参考にして
できたのですが、フォルダ単位というのが知識が不足していて
難しくわかりませんでした。
上書きというのは、MUSTではありませんが、選択できるのであれば
上書きしたいと思います。
Googleで「VB.NET フォルダ コピー 上書き」と検索したら色々出ますがだめですか?
通常PC上に存在するフォルダを別のフォルダにコピー上書きなら
いろいろな方法があると思うのですが、
クリップボードにコピーしたフォルダを
別のフォルダへ移動ということをしたいのですが、
おそらくクリップボード上のフォルダを扱う方法が
私には理解できていないのです。
やりたいことは、右クリックでペーストというだけなのですが、
プログラムにできる力量がありません。
①クリップボードのフォルダパスを取得(Clipboard.GetFileDropListなど)
②「指定のフォルダにペーストする」とあるので貼り付け先のフォルダパスは取得済み
③①②でコピー元とコピー先のパスはわかっているので上記のGoogle検索結果で上書きコピー
ではないのですか?
複数ファイルできますが、フォルダコピーがうまくいきません。
イマイチ何ができないのかわかりません。
コピー元とコピー先のパスはわかっているんですよね?
あるパスのフォルダをあるパスにコピーする方法がわからないのですか?