ハードドライブに散らばっている特定のファイルを整理するhtmlファイルが欲しいです。例えば、リンクしたい2つのファイルがあります。
問題は、このリンクをファイルへのショートカットとして機能させたいということです。以下のようにしてみました。
<a href="C:\Programs\sort.mw">Link 1</a>
<a href="C:\Videos\lecture.mp4">Link 2</a>
... しかし、最初のリンクは何もせず、2つ目のリンクはVLCではなくChromeでファイルを開きます。
私の質問は
1.リンクがファイルへのショートカットとして扱われるようにHTMLを調整する方法はありますか?
2.HTMLを調整する方法がない場合、ハードドライブに散らばっているファイルにきれいにリンクする方法は他にありますか?
私のコンピュータはWindows 7で、WebブラウザはChromeです。
ローカルファイルにリンクしたい場合は、file:///
プロトコル(スラッシュ3つ)を使用する必要があります。
<a href="file:///C:\Programs\sort.mw">Link 1</a>
<a href="file:///C:\Videos\lecture.mp4">Link 2</a>
**これはセキュリティ上の理由によるもので、最後のセクションで説明します。開くとしたら、ブラウザでのみ開かれます。ブラウザがファイルを表示できる場合は表示されますが、そうでない場合はファイルをダウンロードするかどうかを聞いてくるでしょう。
最近のChromeのように、httpプロトコルからファイルプロトコルへの移行を拒否するブラウザもありますので、このようなことをしたいのであれば、ファイルプロトコルでローカルに開くようにした方が良いでしょう。
file:///
がないと動かないのか?URLの最初の部分はプロトコルです。プロトコルはいくつかの文字の後にコロンと2つのスラッシュが続きます。HTTP://や
FTP://は有効なプロトコルですが、
C:/`はそうではありませんし、正しく似てもいないと思います。
また、C:/
も有効なウェブアドレスではありません。ブラウザは空のポートが指定された http://c/
を意味すると考えることができますが、これは失敗するでしょう。
ブラウザは、それがローカルファイルを参照していると仮定しないかもしれません。公共のサイトは通常、人々のローカルファイルにリンクしようとはしませんから、そのように仮定する理由はほとんどありません。
ですから、ローカルファイルにアクセスしたいのであれば、ファイルプロトコルを使うように指示してください。
それは、File URI schemeの一部だからです。最初の2つのスラッシュの後にホストを指定することもできます。ホストの指定を省略すると、自分のPC上のファイルを参照しているとみなされます。つまり、file:///C:/etc
は、file://localhost/C:/etc
のショートカットです。
ブラウザはこれらのファイルに対して、インターネット上のどこかで同じファイルを見たときと同じように反応します。これらのファイルは、デフォルトのファイルハンドラ(MS WordやVLC Media Playerなど)では 開かず、ファイルエクスプローラにファイルの場所を尋ねることも**できません。
**これは、あなたのセキュリティにとって非常に良いことです。
ブラウザ上のサイトは、OSとうまく連携できません。良いサイトがあなたのマシンにVLC.exeでlecture.mp4を開くように指示できたとしたら、悪質なサイトはあなたのマシンにCMD.exeでvirus.batを開くように指示できるでしょう。あるいは、いくつかのUninstall.exeファイルを実行したり、ファイルエクスプローラーを100万回開くようにマシンに指示することもできます。
これはあなたにとって便利ではないかもしれませんが、HTMLやブラウザのセキュリティは、あなたがやっていることを想定して設計されたものではありません。もしあなたがVLC.exeでlecture.mp4を開きたいのであれば、代わりにデスクトップアプリケーションを書くことを検討してください。
PCでIISを使用している場合は、アクセスしようとしているディレクトリを仮想ディレクトリとして追加することができます。 これを行うには、ISSのサイト上で右クリックして、"Add Virtual Directory"を押します。 仮想フォルダに名前を付けます。その仮想フォルダをローカルPCのフォルダの場所に指定します。 また、特定のフォルダにアクセスする権限を持つ認証情報を入力する必要があります(例:HOSTNAME\username and password)。 これで、サイト上の他のファイルと同様に、仮想フォルダ内のファイルにアクセスできるようになります。
http://sitename.com/virtual_folder_name/filename.fileextension
ちなみにこの方法は、ファイルプロトコルfile://を受け付けないChromeでも動作します。
誰かの助けになれば幸いです :)