DOBON.NETプログラミング掲示板過去ログ
フォルダ階層を保ったままクリップボードへコピー
題名: フォルダ階層を保ったままクリップボードへコピー
著者: だいゆうさく
日時: 2013/11/24 9:01:23
ID: 31935
この記事の返信元:
(なし)
この記事への返信:
[31936]
Re[1]: フォルダ階層を保ったままクリップボードへコピー
魔界の仮面弁士
2013/11/25 9:36:50
ツリーを表示
環境/言語:[VS2012、Windos7]
分類:[.NET]
下記ページでファイルやフォルダをクリップボードへコピーする方法を教えていただきました。
http://dobon.net/vb/dotnet/file/copyfiletoclipboard.html
しかし、たとえばフォルダ内にさらにサブフォルダやファイルがある状態で、エクスプローラーでは[Ctrl]+[C]を押して別のフォルダで[Ctrl]+[V]を押すと、フォルダの中身も併せて貼り付けできるのに対して、上記の方法では階層が保たれずに、同じ階層にすべてのフォルダとファイルを貼り付けてしまいます。
フォルダの階層をたもったままコピーするにはどうしたらよいのでしょうか?
貼り付けは、[Ctrl]+[V]を使うことが条件です。
つまり、エクスプローラーで[Ctrl]+[C]を押下したときとまったく同じ状態にクリップボードの状態をするにはどうしたらよいでしょうか?
題名: Re[1]: フォルダ階層を保ったままクリップボードへコピー
著者: 魔界の仮面弁士
日時: 2013/11/25 9:36:50
ID: 31936
この記事の返信元:
[31935]
フォルダ階層を保ったままクリップボードへコピー
だいゆうさく
2013/11/24 9:01:23
この記事への返信:
(なし)
ツリーを表示
2013/11/25(Mon) 09:42:20 編集(投稿者)
■No31935に返信(だいゆうさくさんの記事)
> 環境/言語:[VS2012、Windos7]
> 分類:[.NET]
Windos7 は Windows7 のことだとして、回答としては
VB2012 でも C#2012 でも良いのですね。
ちなみに、Windows 2000 当時は「フォルダ」表記でしたが、
現在(Windows 7も含む)は「フォルダー」が正しい表記です。
> エクスプローラーでは
ちなみにこれも、現在でこそ「エクスプローラー」表記ですが、
以前は「エクスプローラ」表記でしたね(どうでも良い話ですが)。
> 上記の方法では階層が保たれずに、
こちらでは現象を再現できませんでした。階層は期待通りに保たれています。
たとえば、ファイルシステム上に
C:\folder1\
C:\folder1\file1-1.txt
C:\folder1\file1-2.txt
C:\folder1\folder2\
C:\folder1\folder2\file2-1.bmp
C:\folder1\folder2\file2-2.bmp
があったとします。
それに対して、
[C:\folder1\]をエクスプローラーからコピーする
と、貼り付け時には folder1 およびその下の階層がそっくりコピーされます。
これと同じ状態を用意するという話であれば、たとえば C# ならば
Clipboard.SetFileDropList(new StringCollection() { @"C:\folder1\" });
で指定できるはずです。
だいゆうさくさんの環境では、これが期待動作しないということでしょうか。
また、C:\folder1\ 内に対して、folder2 と file1-2.txt のみをコピーした状態、すなわち、
[C:\folder1\file1-2.txt]
[C:\folder1\folder2\]
がコピーされた状態であれば、たとえば VB であれば
Clipboard.SetFileDropList(New StringCollection() From {"C:\folder1\file1-2.txt", "C:\folder1\folder2\"})
となりますが、当方ではこれも期待動作しており、貼り付け先には
.\file1-2.txt
.\folder2\
.\folder2\file2-1.bmp
.\folder2\file2-2.bmp
という構造がそのまま展開されていました。
DOBON.NET
|
プログラミング道
|
プログラミング掲示板
分類:[.NET]
下記ページでファイルやフォルダをクリップボードへコピーする方法を教えていただきました。
http://dobon.net/vb/dotnet/file/copyfiletoclipboard.html
しかし、たとえばフォルダ内にさらにサブフォルダやファイルがある状態で、エクスプローラーでは[Ctrl]+[C]を押して別のフォルダで[Ctrl]+[V]を押すと、フォルダの中身も併せて貼り付けできるのに対して、上記の方法では階層が保たれずに、同じ階層にすべてのフォルダとファイルを貼り付けてしまいます。
フォルダの階層をたもったままコピーするにはどうしたらよいのでしょうか?
貼り付けは、[Ctrl]+[V]を使うことが条件です。
つまり、エクスプローラーで[Ctrl]+[C]を押下したときとまったく同じ状態にクリップボードの状態をするにはどうしたらよいでしょうか?