ルート フォルダーを除くディレクトリの内容を圧縮する方法
質問:
ディレクトリがあります次のような構造:
dir1 file1.html file2.go
に圧縮するとdir1.zip を解凍して展開すると、同じ構造が得られます。
dir1 file1.html file2.go
ただし、展開後の結果として、ルート フォルダー "dir1" を含まない "dir1" 内のコンテンツを zip したいとします。
答え:
これを実現するには、Zipit 関数のコードを変更します。具体的には、次のコードを調べてください。
if baseDir != "" { header.Name = filepath.Join(baseDir, strings.TrimPrefix(path, source)) }
このコードは、ベース ディレクトリ (この場合は「dir1」) をアーカイブ内のファイル名に追加します。抽出されたコンテンツからルート フォルダーを除外するには、単純にベース ディレクトリの追加を削除します。
header.Name = strings.TrimPrefix(path, source)
このコードはパスからプレフィックスを削除し、ベース ディレクトリを含めずにヘッダー名に割り当てます。
例:
関数を次のように呼び出している場合以下:
Zipit("dir1/", "dir1.zip")
コードを変更すると、抽出されたコンテンツは次のようになります:
file1.html file2.go
「dir1」ルート フォルダーなし。
その他注:
以上がルートフォルダーを除くディレクトリの内容を圧縮するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。