ルートフォルダーを除くディレクトリの内容を圧縮するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-18 22:17:02
オリジナル
297 人が閲覧しました

How to Zip Directory Contents Excluding the Root Folder?

ルート フォルダーを除くディレクトリの内容を圧縮する方法

質問:

ディレクトリがあります次のような構造:

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート