Getting Operational.
URL Cache Copy Program Ver.1.83
2001/2/12 written by Thrasher mail
Thrasher's Personal
Laboratory.
1.まずはじめに
本プログラムではリストボックスに入っているURL傘下のファイルのみをキャッシュからコピー、またはキャッシュ中の全インターネットファイルをコピーします。特定URL傘下のファイルのみをコピーする場合はキャッシュからコピーしたいURLをリストボックスに追加していく作業を一番最初にしておく必要があります。入力されたURLは次回以降も覚えているので初めて起動した場合にだけ行えば充分です。もちろん後からURLを更に追加しても構いません。
キャッシュ中の全インターネットファイルをコピーする場合は2.を、URLを指定してコピーしたい場合は3.をご覧ください。どちらの場合でもコピーされるのはインターネットファイルだけです。ローカルファイルも(もしIEで見たら)キャッシュに格納されますが、本プログラムではインターネットファイル以外は一切コピーしません。
2.丸ごとコピー
指定が必要な項目は3つです。Copy The Entire Cache項目にチェックを入れて、Copy Destination項目にコピー先のドライブとディレクトリを、Default Filename項目にファイル名のないURLの場合に使用するデフォルトファイル名を入力します。
Copy Destination項目は直接入力しても構いませんが右隣にあるBrowseボタンを押すと簡単に入力できます。Copy Destination項目はドライブとディレクトリの両方を指定する必要があります。つまりC:だけだったりmysitesだけでは不十分です。C:\mysitesのように指定します。この場合、http://www.abc.ne.jp/~def/ghi.htmlというURLのファイルならコピー先はC:\mysites\www.abc.ne.jp\~def\ghi.htmlになります。
Default Filename項目はファイル名のないURLをコピーする際に使用されます。ファイル名のないURLとは例えばhttp://www.abc.ne.jp/~def/のように最後が/で終わっているURLのことを指します。このURLの場合ではコピー先はC:\mysites\www.abc.ne.jp\~defというディレクトリとなりますが、ファイル名がないとファイルコピーという行為自体が出来ません。このようなURLの場合にDefault Filenameに指定したファイル名が用いられます。通常はindex.htmlと入力しておけば大丈夫でしょう。
後はStartボタンを押すとコピーが始まります。ボタンを押した直後はキャッシュの中身を色々と調べているので多少待たされるかもしれませんが、それが終わればコピーが始まります。コピーが始まるとStartボタンがStopボタンに変わります。コピー中であってもStopボタンを押すことで中止できます。
3.特定URLのファイルをコピー
http://www.abc.ne.jp/~def/というURLのサイトをIEで見たので、キャッシュからこのURL傘下のファイルをコピーしたいとします。まずCopy The Entire Cache項目のチェックを外します。次にURLをリストボックスに追加します。URLをリストボックスに追加するにはそれをURL項目に入力してAddボタンを押します。ブラウザに表示されているURLからコピー&ペーストでURL項目に入力するのが一番楽でしょう。URL項目に入力したらAddボタンが押せるようになっていることを確認してください。本プログラムはURL項目の内容を常に監視しています。受け付けられないURLが入力された場合はAddボタンが押せないようになります。URL項目に入力する内容は以下のルールに従っている必要があります。
http://またはhttps://で始まっている
/で終わっている
最初のhttp://またはhttps://と最後の/の間に少なくとも1文字以上の文字がある
つまりwww.abc.ne.jp/~def/やhttp://www.abc.ne.jp/~defではAddボタンが押せません。http://www.abc.ne.jp/~def/と入力する必要があります。Addボタンを押すと入力したURLがリストボックスに追加されて、URL項目は最初の状態に戻ります。このURL追加の手順をキャッシュからコピーしたいURL分だけ繰り返します。
コピーしたいURLを全てリストボックスに追加したらCopy Destination項目にコピー先のドライブとディレクトリを、Default Filename項目にファイル名のないURLの場合に使用するデフォルトファイル名を入力します。
Copy Destination項目は直接入力しても構いませんが右隣にあるBrowseボタンを押すと簡単に入力できます。Copy Destination項目はドライブとディレクトリの両方を指定する必要があります。つまりC:だけだったりmysitesだけでは不十分です。C:\mysitesのように指定します。この場合、http://www.abc.ne.jp/~def/ghi.htmlというURLのファイルならコピー先はC:\mysites\www.abc.ne.jp\~def\ghi.htmlになります。
Default Filename項目はファイル名のないURLをコピーする際に使用されます。ファイル名のないURLとは例えばhttp://www.abc.ne.jp/~def/のように最後が/で終わっているURLのことを指します。このURLの場合ではコピー先はC:\mysites\www.abc.ne.jp\~defというディレクトリとなりますが、ファイル名がないとファイルコピーという行為自体が出来ません。このようなURLの場合にDefault Filenameに指定したファイル名が用いられます。通常はindex.htmlと入力しておけば大丈夫でしょう。
後はStartボタンを押すとコピーが始まります。ボタンを押した直後はキャッシュの中身を色々と調べているので多少待たされるかもしれませんが、それが終わればコピーが始まります。コピーが始まるとStartボタンがStopボタンに変わります。コピー中であってもStopボタンを押すことで中止できます。
コピーはキャッシュ中のhttp://www.abc.ne.jp/~def/で始まるURLの全ファイルが対象になります。http://www.abc.ne.jp/~def/ghi.htmlやhttp://www.abc.ne.jp/~def/ghi/jkl.html等も全て(もしキャッシュ中にあれば)コピーされます。もしhttp://www.abc.ne.jp/~def/ghi/というURLをリストボックスに追加した場合はhttp://www.abc.ne.jp/~def/ghi/jkl.htmlはコピーされますがhttp://www.abc.ne.jp/~def/index.htmlはコピーされません。
4.オプション
あまり大した項目はありませんが、本プログラムではオプションを指定できます。オプションを指定するにはOptionボタンを押します。
Time Stamp ComparisonではOverwrite If Newer File is Cached、Overwrite Always、Rename and Copyのいずれかを選びます。Overwrite If Newer File is Cachedを選ぶとキャッシュ中のファイルの日時とコピー先のファイルの日時を比較して、キャッシュ中のファイル日時の方が新しい場合(つまりコピー先ファイルが古い場合)だけコピーを行います。Overwrite Alwaysを選ぶとファイル日時の比較は行われず無条件でコピーされます。Rename and Copyを選ぶとコピー先に存在する同名ファイルのファイル名を変更してからコピーします。コピー先の同名ファイルは西暦、月、日が付与されたファイル名に変更されます。
No Progress項目はコピー中に最下段に表示される進捗表示の有無を指定します。No Progress項目がチェックされているとコピー中の進捗は表示されなくなります。チェックされていない場合は進捗が表示されます。進捗表示を行う場合はコピー動作開始前にブラウザのキャッシュから情報の取得作業が必要になるため、ブラウザのキャッシュが大きい場合には非常に時間がかかることがあります。進捗表示を行わない場合はコピー動作がどこまで捗ったかが表示されなくなりますが、コピー動作前の情報取得作業が不要になるためStartボタン押下後すぐにコピー動作が始まります。
No Report項目はコピー動作中に発生したエラーや、コピー動作完了後のコピーファイル数等のレポート表示の有無を指定します。チェックされているとレポートを表示しません。チェックされていない場合はレポートを表示します。
Delete Copied Ftp Files項目はローカルファイルとしてコピーされたftpスキームファイルをキャッシュから削除するかどうかを指定します。チェックされているとローカルファイルとしてコピー後にそのftpスキームファイルをキャッシュから削除します。エラー等の原因でコピーされなかったftpスキームファイルやコピー対象外のftpスキームファイルは削除されません。チェックされていない場合はコピー後もそのftpスキームファイルを削除しません。ブラウザによるftpサイトからのダウンロードファイルもキャッシュに格納されますが、キャッシュに格納されたftpサイトからのダウンロードファイルを再利用するケースは通常ありませんので削除するようにしたほうがキャッシュの有効利用を図れます。
Delete Local Visited Entries項目はローカルファイル(ネットワークドライブ上のファイルも含む)の表示履歴エントリをキャッシュから削除するかどうかを指定します。チェックされているとローカルファイルの表示履歴エントリをキャッシュから削除します。インターネットファイルの表示履歴エントリはブラウザによる閲覧時の外観に影響を与えるため一切削除しません。チェックされていない場合はローカルファイルの表示履歴エントリを削除しません。
Exit When Done項目はコピー動作完了後に自動終了するかどうかを指定します。チェックされているとコピー動作完了後に自動的に終了します。チェックされていない場合は終了しません。
Specify Extension項目はキャッシュからコピーするファイルを更に絞りたい場合にチェックを入れます。チェックされていない場合は指定URL傘下の全ファイルがコピーされますが、チェックされている場合は更に拡張子を指定することでコピーするファイルを絞ることが出来ます。Specify Extension項目にチェックを入れるとリストボックスとExtension項目が入力できるようになります(チェックされていない場合は入力できません)。拡張子を指定しておくと、その拡張子のファイルだけをコピー或いはその拡張子を持たないファイルだけをコピーすることが出来ます。その拡張子のファイルをコピーするかどうかは後述するFiles With Above Extensions are...で決まります。
Extension項目に例えば.jpgや.gifといった拡張子を入力するとAddボタンが押せるようになります。Addボタンを押すとその拡張子がリストボックスに追加されます。必要な拡張子を全てリストボックスに追加してください。
Files With Above Extensions are...ではTo be CopiedかNot To be Copiedのどちらかを選びます(Specify Extensionがチェックされていない場合は選べません)。To be Copiedを選ぶと指定した拡張子のファイルだけをコピーします。Not To be Copiedを選ぶと指定した拡張子を持たないファイルだけをコピーします。
例えば.jpgや.gif等といった画像ファイルの拡張子をリストボックスに追加してTo be Copiedを選んでおけば、キャッシュ中のコピー対象ファイルのうち画像ファイルだけをコピーできます。
5.コピー先でのディレクトリ名とファイル名
URLによる表記はディレクトリ名やファイル名として使えない文字を含んでいることがあります。本プログラムはコピー先のディレクトリ名やファイル名に関して以下のルールを適用します。
URLの/を円記号に変えます
www.abc.ne.jp/~def/ghi.html → www.abc.ne.jp¥~def\ghi.html
URLに?または#がある場合はその記号以下を切り捨てます(?がディレクトリ名、ファイル名として使えないため、また#ラベルはコピー先に不要なため)
www.abc.ne.jp/~def/ghi.cgi?subject=hello → www.abc.ne.jp¥~def\ghi.cgi
www.abc.ne.jp/~def/ghi.html#product → www.abc.ne.jp¥~def\ghi.htmlURLのスキーム(http://等)以外でコロンがある場合(ポート番号の指定がある場合)はそのコロンとポート番号部分を切り捨てます
www.abc.ne.jp:80/~def/ghi.html → www.abc.ne.jp¥~def\ghi.html
URLにアスタリスクがある場合は全角の*に置き換えます(アスタリスクがディレクトリ名、ファイル名として使えないため)
www.abc.ne.jp/~def/ghi*jkl.html → www.abc.ne.jp¥~def\ghi*jkl.html
URLが%記号とそれに続く16進数のエンコードを含んでいる場合は対応する文字に置き換えます
www.abc.ne.jp/%7Edef/ghi.html → www.abc.ne.jp¥~def\ghi.html
Windowsではディレクトリ名やファイル名の区切りは円記号なのでURL中の/は全て円記号にします。URL中の?以降はcgiプログラムに渡されるパラメータ(情報)で、ファイル名ではないので切り捨てます。#記号はHTMLファイル中にてマークされているラベルを参照するもので、ファイル名ではないので切り捨てます。
URLにはポート番号(コロンとそれに続く10進数)と呼ばれる要素を指定できることになっています。ポート番号は通信を行う際に必要な情報でファイル名ではないので、スキーム(http://の部分)以外でコロンとそれに続く10進数がある場合はその部分を切り捨てます。
Windowsではディレクトリ名やファイル名にアスタリスクは使えないので、URL中のアスタリスクは全角の*に置き換えます。アスタリスクの入ったURLは滅多にないとは思いますが、かつてアスタリスクの入ったURLを見かけたことがあるのでこのようにしました。
URLに全角文字が使われている場合等では%記号とそれに続く2桁の16進数からなるURLエンコードと呼ばれる表記になっています。また全角文字でなくても希にURLエンコードになっていることがあります。見やすさを考えてこれらのURLエンコード表記の場合は対応する文字に置き換えます。