そのまとめみたいなメモをgoogle Docに作ったので、合わせて参照あれ。
https://docs.google.com/document/d/1lQmkEN8UxggewyHtPGLfwhW5_r8qR1e7yeedYkdnR2M/edit?hl=ja
ソース:
-module(zipTest).
-include_lib("wx.hrl").
-export([start/0]).
%% -*- coding: shift-JIS -*-
%% Current Directory -> C:\Users\andre\erlwork
start() ->
%myzipMem().
%myzipVerbose().
%myzipCwd().
%myzipUcp().
myzipCmt().
%% @doc write to file on memory data that compress by zip:zip/3
%% in C:\Users\andre\erlwork\auiTest.erl
%% out C:\Users\andre\erlwork\ngs_bin.zip
myzipMem() ->
Option = [memory],
case zip:zip("ngs.zip",["auiTest.erl"],Option) of
{ok,{"ngs.zip",Mem}} -> file:write_file("ngs_bin.zip",Mem),
ok;
{error,Reason} -> io:format("Reason:~p~n",[Reason])
end.
%% @doc compress the directory
%% in C:\Users\andre\erlwork\zip
%% out C:\Users\andre\erlwork\ngs.zip
myzipDrct() ->
Option = [],
case zip:zip("ngs.zip",["zip"],Option) of
{ok,"ngs.zip"} -> ok;
{error,Reason} -> io:format("Reason:~p~n",[Reason])
end.
%% @doc compress the file
%% in C:\Users\andre\erlwork\auiTest.erl
%% out C:\Users\andre\erlwork\ngs.zip
myzip() ->
Option = [],
case zip:zip("ngs.zip",["auiTest.erl"],Option) of
{ok,"ngs.zip"} -> ok;
{error,Reason} -> io:format("Reason:~p~n",[Reason])
end.
%% @doc compress the directory with option [verbose]
%% in C:\Users\andre\erlwork\zip
%% out C:\Users\andre\erlwork\ngs.zip
myzipVerbose() ->
Option = [verbose],
case zip:zip("ngs.zip",["zip"],Option) of
{ok,"ngs.zip"} -> ok;
{error,Reason} -> io:format("Reason:~p~n",[Reason])
end.
%% @doc compress the directory and change current directory
%% in C:\Users\andre\erlwork\zip_work\test
%% out C:\Users\andre\erlwork\ngs_cwd.zip
myzipCwd() ->
Option = [verbose,{cwd,"zip_work"}],
case zip:zip("ngs_cwd.zip",["test"],Option) of
{ok,"ngs_cwd.zip"} -> ok;
{error,Reason} -> io:format("Reason:~p~n",[Reason])
end.
%% @doc compress the directory but uncompress the extension "*.erl".
%% in C:\Users\andre\erlwork\zip
%% out C:\Users\andre\erlwork\ngs_ucp.zip
%% ucp -> uncompress
myzipUcp() ->
ZipName = "ngs_ucp.zip",
Option = [verbose,{uncompress,{add,[".erl"]}}],
case zip:zip(ZipName,["zip"],Option) of
{ok,ZipName} -> ok;
{error,Reason} -> io:format("Reason:~p~n",[Reason])
end.
%% @doc compress the directory but uncompress the extension "*.erl".
%% in C:\Users\andre\erlwork\zip
%% out C:\Users\andre\erlwork\ngs_cmt.zip
%% cmt -> comment
myzipCmt() ->
ZipName = "ngs_cmt.zip",
Option = [verbose,{comment,"This is test."}],
case zip:zip(ZipName,["zip"],Option) of
{ok,ZipName} -> ok;
{error,Reason} -> io:format("Reason:~p~n",[Reason])
end.
wx.hrlはErlangのインストールディレクトリ内を検索するとあるので、それを本ソースと同一ディレクトリに配置してください。
ディレクトリ構成がちょっと面倒かも。C:\Users\andre\erlwork\に実行モジュール(beam)がある。それと同一ディレクトリにzipディレクトリとかzip_workディレクトリとかある。
毎回のことだけど、解説がつかないブログで申し訳ありません :-<
追記:2011/07/27
%% @doc compress the directory and compress the extension "*.zip".
%% in C:\Users\andre\erlwork\zip
%% out C:\Users\andre\erlwork\ngs_uncm.zip
%% uncm -> uncompress
myzipUncm() ->
ZipName = "ngs_uncm.zip",
Option = [{uncompress,{del,[".zip"]}}],
case zip:zip(ZipName,["zip"],Option) of
{ok,ZipName} -> ok;
{error,Reason} -> io:format("Reason:~p~n",[Reason])
end.
このコードも追加して、実行したら、ファイルのサイズが若干違った。
普通に圧縮したものとこのコードで圧縮したものを比較すると、このコードでやったもののほうが5バイト大きかった。
追記:2011/07/27
%% @doc compress the directory and compress the extension "*.zip".
%% in C:\Users\andre\erlwork\zip
%% out C:\Users\andre\erlwork\ngs_uncm.zip
%% uncm -> uncompress
myzipUncm() ->
ZipName = "ngs_uncm.zip",
Option = [{uncompress,{del,[".zip"]}}],
case zip:zip(ZipName,["zip"],Option) of
{ok,ZipName} -> ok;
{error,Reason} -> io:format("Reason:~p~n",[Reason])
end.
このコードも追加して、実行したら、ファイルのサイズが若干違った。
普通に圧縮したものとこのコードで圧縮したものを比較すると、このコードでやったもののほうが5バイト大きかった。
0 件のコメント:
コメントを投稿