Creating Directories in a ZipArchive C# .Net 4.5
You can use something like the following, in other words, create the directory structure by hand:
using (var fs = new FileStream("1.zip", FileMode.Create))
using (var zip = new ZipArchive(fs, ZipArchiveMode.Create))
{
zip.CreateEntry("12/3/"); // just end with "/"
}
How to create a zip archive of a directory?
As others have pointed out, you should use zipfile. The documentation tells you what functions are available, but doesn't really explain how you can use them to zip an entire directory. I think it's easiest to explain with some example code:
import os
import zipfile
def zipdir(path, ziph):
# ziph is zipfile handle
for root, dirs, files in os.walk(path):
for file in files:
ziph.write(os.path.join(root, file),
os.path.relpath(os.path.join(root, file),
os.path.join(path, '..')))
with zipfile.ZipFile('Python.zip', 'w', zipfile.ZIP_DEFLATED) as zipf:
zipdir('tmp/', zipf)
How to create a zip archive with PowerShell?
If you head on over to CodePlex and grab the PowerShell Community Extensions, you can use their write-zip
cmdlet.
Since
CodePlex is in read-only mode in preparation for shutdown
you can go to PowerShell Gallery.
Create zip file and ignore directory structure
You can use -j
.
-j
--junk-paths
Store just the name of a saved file (junk the path), and do not
store directory names. By default, zip will store the full path
(relative to the current directory).
Create zip file from all files in folder
Referencing System.IO.Compression and System.IO.Compression.FileSystem in your Project
using System.IO.Compression;
string startPath = @"c:\example\start";//folder to add
string zipPath = @"c:\example\result.zip";//URL for your ZIP file
ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, true);
string extractPath = @"c:\example\extract";//path to extract
ZipFile.ExtractToDirectory(zipPath, extractPath);
To use files only, use:
//Creates a new, blank zip file to work with - the file will be
//finalized when the using statement completes
using (ZipArchive newFile = ZipFile.Open(zipName, ZipArchiveMode.Create))
{
foreach (string file in Directory.GetFiles(myPath))
{
newFile.CreateEntryFromFile(file, System.IO.Path.GetFileName(file));
}
}
How to create a zip archive containing multiple files and subfolders in memory?
In your code you need to close the zip file after writing data into it. Below is the example code.
import io
import zipfile
b = io.BytesIO()
zf = zipfile.ZipFile(b, mode='w')
zf.writestr('a/b.txt', 'look here')
zf.writestr('a/c.txt', 'look there')
zf.close()
open('here.zip', 'wb').write(b.getbuffer())
How to zip a file using cmd line?
If you are using Ubuntu Linux:
Install
zip
sudo apt-get install zip
Zip your folder:
zip -r {filename.zip} {foldername}
If you are using Microsoft Windows:
Windows does not come with a command-line zip program, despite Windows Explorer natively supporting Zip files since the Plus! pack for Windows 98.
I recommend the open-source 7-Zip utility which includes a command-line executable and supports many different archive file types, especially its own *.7z
format which offers superior compression ratios to traditional (PKZIP) *.zip
files:
Download 7-Zip from the 7-Zip home page
Add the path to
7z.exe
to yourPATH
environment variable. See this QA:
How to set the path and environment variables in WindowsOpen a new command-prompt window and use this command to create a PKZIP
*.zip
file:7z a -tzip {yourfile.zip} {yourfolder}
Cross-platform Java:
If you have the Java JDK installed then you can use the jar
utility to create Zip files, as *.jar
files are essentially just renamed *.zip
(PKZIP) files:
jar -cfM {yourfile.zip} {yourfolder}
Explanation:
* -c compress
* -f specify filename
* -M do not include a MANIFEST file
Related Topics
Get Spotify Currently Playing Track
Construct Pandas Dataframe from Items in Nested Dictionary
How to Set Python's Default Version to 3.X on Os X
Dynamically Evaluate an Expression from a Formula in Pandas
What Are the Differences Between Numpy Arrays and Matrices? Which One Should I Use
Python List Sort in Descending Order
If Python Is Interpreted, What Are .Pyc Files
Cannot Find Module Cv2 When Using Opencv
Using 'Try' VS. 'If' in Python
What Does "The Following Packages Will Be Superseded by a Higher Priority Channel" Mean
"Ssl Module in Python Is Not Available" When Installing Package with Pip3
Creating a JSON Response Using Django and Python
Proper Name for Python * Operator
Keras, How to Get the Output of Each Layer