2015/11/30

.NET から IFileOperation を使う

IFileOperation インターフェースとは?

コピー、移動、名前の変更、作成、および進捗状況とエラーダイアログを提供するために、シェルの項目と同様の方法を公開したインターフェース。
従来の Windows API の SHFileOperation の機能を置き換えたもので、Windows Vista から実装されている機能だそうです。(https://msdn.microsoft.com/ja-jp/library/windows/desktop/bb775771%28v=vs.85%29.aspx)

SHFileOperation については、.NET Framework では Microsoft.VisualBasic.dll でラップされていて、Visual Basic では、My.Computew.FileSystem から呼び出すことができます。
しかし、SHFileOperation のすべての機能が使えるわけでもないし、痒い所に手が届かない感じ。

アンマネージドなコードで再実装するにしても、今さら Vista 以前の OS なんてサポートする必要なんてないから、IFileOperation で実装したほうが良いじゃん!

とか思って調べてみても、なかなか情報が集まらないが、やっと見つけたのでメモ。

MSDN マガジンのバックナンバーとダウンロード

2007年12月(December 2007)をクリックして MSDNMagazine2007_12ja-jp.chm をダウンロードします。

「MSDN Magazine December 2007」のコンパイルされたHTML ヘルプ ファイルを開いて、中身が見られない場合は、Explorer からのマウス右クリックによるファイルのプロパティ「全体」タブの下部の「セキュリティ:このファイルは他のコンピュータから取得したものです。~」の「ブロックの解除」ボタンを押下して解除すると中身は読むことができます。

その記事の「.NET の問題: Windows Vista での IFileOperation:」に記事があります。

その記事中の「コードのダウンロード」をクリックすると、サンプルのソースもダウンロードできます。

0 件のコメント: