typescript で tar, gzip, tgz, zip 形式のファイルを展開する方法を紹介します。
1. Compressing モジュールのインストール
compressing というモジュールを使用します。
https://www.npmjs.com/package/compressing
npm install compressing
でインストールできます。
2. 展開を行う _uncompress クラス
すこし長いですが、各関数を1つのクラスにまとめています。
// uncomp.ts
import * as compressing from "compressing";
//
export interface IUnCompress {
unzip(filepath: string, destdir: string): any;
ungzip(filepath: string, destdir: string): any;
untar(filepath: string, destdir: string): any;
untgz(filepath: string, destdir: string): any;
}
export default class _UnCompress implements IUnCompress{
//
unzip(filepath: string, destdir: string) {
compressing.zip.uncompress(filepath, destdir)
.then( () => {
return 0;
})
.catch( (e) => {
return e;
})
}
//
ungzip(filepath: string, destdir: string) {
compressing.gzip.uncompress(filepath, destdir)
.then( () => {
return 0;
})
.catch( (e) => {
return e;
})
}
//
untar(filepath: string, destdir: string) {
compressing.tar.uncompress(filepath, destdir)
.then( () => {
return 0;
})
.catch( (e) => {
return e;
})
}
//
untgz(filepath: string, destdir: string) {
compressing.tgz.uncompress(filepath, destdir)
.then( () => {
return 0;
})
.catch( (e) => {
return e;
})
}
//
}
3. 関数の説明
1. unzip 関数
- 処理内容:zip形式のファイルを展開します。
- 引数:
filepath
展開するファイルパス,destdir
展開先ディレクトリパス - 返り値: 正常終了の場合は 0、異常終了の場合はエラー内容を返します。
2. ungzip 関数
- 処理内容:gzip形式のファイルを展開します。
- 引数:
filepath
展開するファイルパス,destdir
展開先ディレクトリパス - 返り値: 正常終了の場合は 0、異常終了の場合はエラー内容を返します。
3. untar 関数
- 処理内容:tar形式のファイルを展開します。
- 引数:
filepath
展開するファイルパス,destdir
展開先ディレクトリパス - 返り値: 正常終了の場合は 0、異常終了の場合はエラー内容を返します。
4. untgz 関数
- 処理内容:tgz形式のファイルを展開します。
- 引数:
filepath
展開するファイルパス,destdir
展開先ディレクトリパス - 返り値: 正常終了の場合は 0、異常終了の場合はエラー内容を返します。
4. 使い方
import _UnComp from "./uncomp";
//
const UnComp = new _UnComp;
//
let zipfile: string = "./sample.zip";
let gzipfile: string = "./sample.gzip";
let tarfile: string = "./sample.tar";
let tgzfile: string = "./sample.tgz";
let destdir:string = "./test/"
//
UnComp.unzip(zipfile, destdir);
UnComp.ungzip(gzipfile, destdir);
UnComp.untar(tarfile, destdir);
UnComp.untgz(tgzfile, destdir);
クラスをimoprt して、new でインスタンスを生成している感じです。 あとは、関数を呼び出します。
5. ダウンロード
uncomp.ts はこちらからダウンロード可能です。
実践TypeScript【電子書籍】[ 吉井健文 ]
価格:3726円 (2019/7/23時点)
楽天で購入
](https://hb.afl.rakuten.co.jp/hgc/18648e8b.7d833591.18648e8c.ed1bab3c/?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Frakutenkobo-ebooks%2F5456816fd8833397a6aa8b80647873ad%2F%3Fscid%3Daf_pc_bbtn&m=http%3A%2F%2Fm.rakuten.co.jp%2Frakutenkobo-ebooks%2Fi%2F18341447%2F%3Fscid%3Daf_pc_bbtn&link_type=picttext&ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJwaWN0dGV4dCIsInNpemUiOiIyNDB4MjQwIiwibmFtIjoxLCJuYW1wIjoicmlnaHQiLCJjb20iOjEsImNvbXAiOiJkb3duIiwicHJpY2UiOjEsImJvciI6MSwiY29sIjoxLCJiYnRuIjoxfQ==)
コメント