メモ帳のダウンロード方法

作成日:2019-01-31

1. 概要

メモ帳で開発している実行ファイル(EXE)とソースのダウンロード方法です。
ブラウザでインターネットからファイルをダウンロードをすると、ファイルに Zone.Identifier と言う情報が付加されます。
この情報が付いた zip ファイルを解凍すると、解凍された全てのファイルにも同じ情報が付加されます。
この情報により、ファイルのプロパティで、実行の許可をしない限り、実行ファイルが実行できなかったり、ソースの場合はビルドエラーが発生します。
本記事では、この解決方法(ダウンロード or ダウンロード後の対処)について説明します。
信用できないサイトからダウンロードしたファイルは、ウィルス等が含まれている可能性があるため、十分に注意して自己責任において行ってください。

また、5つの方法で説明していますが、「2.4 方法4 - PowerShellを使用する方法」が簡単かもしれません。

Zone.Identifier の有無は、コマンドプロンプトで「dir /r」を実行して確認することができます。
コマンドプロンプト 実行例
D:\test\ncm_1_1_10\ncm_1_1_10>dir /r
 ドライブ D のボリューム ラベルは 作業用 です
 ボリューム シリアル番号は 9849-D713 です

 D:\test\ncm_1_1_10\ncm_1_1_10 のディレクトリ

2019/01/31  00:00    <DIR>          .
2019/01/31  00:00    <DIR>          ..
2019/01/31  00:00             1,084 LICENSE.txt
                                 62 LICENSE.txt:Zone.Identifier:$DATA
2019/01/31  00:00           175,616 NineCubedMemo.exe
                                 62 NineCubedMemo.exe:Zone.Identifier:$DATA
2019/01/31  00:00    <DIR>          plugins
2019/01/31  00:00               722 readme.txt
                                 62 readme.txt:Zone.Identifier:$DATA
2019/01/31  00:00         1,456,640 System.Data.SQLite.dll
                                 62 System.Data.SQLite.dll:Zone.Identifier:$DATA
               4 個のファイル           1,634,062 バイト
               3 個のディレクトリ  1,798,390,591,488 バイトの空き領域

2. 方法


2.1 方法1 - 手動

1. 実行ファイル(.exe)の場合

ダウンロードした zip を解凍して、exe ファイルと dll ファイルを検索して、それぞれファイルのプロパティを表示して、一番下の許可するにチェックをつけてください。


2. ソースの場合

以下のビルドエラーが出たファイルを、1つずつ実行ファイルの時と同様に、ファイルのプロパティを表示して、許可するにチェックをつけてください。


但し、ダウンロードする度に毎回行う必要があり、現実的ではありません。

2.2 方法2 - Gitを使用する方法

1. 実行ファイル(.exe)の場合

未対応

2. ソースの場合

Git をインストール済みの場合は、Git を使って、GitHub からクローンの作成により、ソースをダウンロードすると、警告が出なくなります。

Git、GitHub の使い方については、以下を参考にしてください。
Windows版の Git、Tortoise Git のインストール
GitHubの使い方について

2.3 方法3 - curlを使用する方法

curl をインストール済みの場合は、コマンドプロンプトで以下のコマンドにより、zip をダウンロードすると、警告が出なくなります。
ファイル名は適宜書き換えて下さい。

実行ファイル
コマンドプロンプト
curl https://9cubed.info/download/nine_cubed_memo/ncm_1_1_10.zip > ncm_1_1_10.zip

ソース
コマンドプロンプト
curl https://9cubed.info/download/nine_cubed_memo/ncm_1_1_10_src.zip > ncm_1_1_10_src.zip

2.4 方法4 - PowerShellを使用する方法

OS付属の PowerShell を使う方法です。
ファイルを作成する必要がありますが、何もインストールする必要がないため、Git や curl をインストールしていない場合は、一番簡単です。

以下のファイルをメモ帳で作成して、ファイルを右クリック→「プログラムから開く」→「Windows PowerShell」で実行すると zip をダウンロードして解凍まで行います。
PowerShellのファイルは、ダブルクリックをすると、エラーが発生しますので、上記の方法で実行してください(設定により、エラーが出ない場合もあります)。
ダウンロードするファイル名は、適宜書き換えて下さい。実行形式(exe)とソースのどちらの zip にも対応しています。

download.ps1
#ダウンロードするファイル名
$file = "ncm_1_1_10_src.zip"

#ダウンロード
$url = "https://9cubed.info/download/nine_cubed_memo/" + $file
$uri = New-Object System.Uri($url);
$client = New-Object System.Net.WebClient
$client.DownloadFile($uri, $file)
echo "ダウンロードが完了しました。"

#解凍
Expand-Archive -Path $file
echo "解凍しました。"
pause

2.5 方法5 - PowerShellでZone.Identifierを削除

PowerShellを使うため、「方法4」で問題ないと思いますが、以下の方法により、ダウンロード後の Zone.Identifier を削除して、警告やビルドエラーを回避することができます。

解凍したファイルと同じフォルダに、以下のファイルを作成して、PowerShellで実行してください。実行方法については「方法4」も参考にしてください。

remove_ads.ps1
get-childitem -rec | % { cmd /c "echo.>""$($_.FullName)"":Zone.Identifier" }

【参考】stackoverflow:Unblock a file with PowerShell?