Internet Explorerで「名前をつけて保存」するときに、「Web ページ、完全」を選んだときの動作をコード化してみました。
HTMLを保存するクラス~
&ref(MyHTMLDocument.cs); (16.6KB)
- 利用例
MyHTMLDocument doc = new MyHTMLDocument(@"C:\test\original.html");
doc.Save(@"C:\saved\result.html");
MoveやCopyをすると、リンクしているファイルを格納しているディレクトリも同時に移動、リネームされます。
MyHTMLDocument.Move(@"C:\saved\result.html", @"C:\saved\moved.html");
MyHTMLDocument.Copy(@"C:\saved\result.html", @"C:\saved\copied.html");
- デフォルト設定では、file、httpプロトコルに対応。3階層までのリンクをたどって、関連ファイルを取得します。
- 上記設定は、constフィールドの値によって変更可能。#固定値じゃなく可変にしてもらっても問題ないです。例えば、下記のように。
MyHTMLDocument doc = new MyHTMLDocument("http://jomora.bne.jp/");
doc.EnableHttp = true;
doc.MaxParseLevel = 5;
doc.Save(@"C:\saved\result.html");
- 自動取得する関連ファイルは、リンクしている画像ファイル、スタイルシート、HTMLファイルです。Flashファイルは半対応(^^;;、JavaScriptは未対応です。
- frame、iframeに未対応なのは、そのうち何とかしようかな… (^^;;