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

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

実践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==)

コメント

タイトルとURLをコピーしました