- PR -

Vista+CopyFileでファイルコピーした際のコピー先ファイル名

1
投稿者投稿内容
たまごやき
会議室デビュー日: 2009/03/02
投稿数: 2
投稿日時: 2009-03-02 21:47
こんにちは。
お世話になります。たまごやきと申します。

以下の点について御存知の方いらっしゃいましたら、
御教授頂ければ幸いです。宜しくお願いします。

・開発環境: Visual Studio 2005 (VB2005)
・動作OS: Vista
・処理: FileSystem.CopyFile でのファイルコピー

上記処理の際、コピー先に同名のファイルが存在すると
”上書きするか否か”を選択するダイアログが表示され
ますが、Vistaに限り(2008Serverも同じかも知れません)
選択肢として以下の流れが増えます。

『コピーするが両方のファイルを保持する』

結果としては、ファイル名の重複を避け、(2),(3)...
といった自動付番にてファイルがコピーされますが、
この「コピー先のファイル名」は、プログラムからは
どのように参照できるのでしょうか?
Azulean
大ベテラン
会議室デビュー日: 2008/01/04
投稿数: 123
お住まい・勤務地: 大阪府
投稿日時: 2009-03-02 23:37
FileSystem.CopyFileを使用している限りでは無理だと思います。
内部で使用されているはずの、SHFileOperationを使えばできるかもしれません。
それが無理だとしたとしても、IFileOperationとか辿っていけばなんとかなりそうですが。

ただ、.NET Frameworkで隠されていた部分を自分で実装する必要が出てくるため、ハードルは格段に上がります。
たまごやき
会議室デビュー日: 2009/03/02
投稿数: 2
投稿日時: 2009-03-08 18:27
Azulean様
当日に返答頂いていたにも関わらず返信出来ず失礼しました。

回答ありがとうございました。
やはり容易く実装できるような策は無いとの事で、異なる
アプローチを考えます。
巧いロジックが完成しましたら、こちらにUPしようと思います。

また問題にぶつかった際は、その節も宜しくご教授御願いします。
1

スキルアップ/キャリアアップ(JOB@IT)