Typescript で圧縮ファイルを展開する方法

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 はこちらからダウンロード可能です。

uncomp.ts

返信を残す

メールアドレスが公開されることはありません。