Zipãã¡ã€ã«ã¢ãŒã«ã€ãã®äœæãšå±éã«é¢ããå æ¬çã¬ã€ããéçºè ãã·ã¹ãã 管çè åãã«ããã¹ããã©ã¯ãã£ã¹ããã©ãããã©ãŒã äºææ§ãã»ãã¥ãªãã£ãé«åºŠãªæè¡ã解説ããŸãã
Zipãã¡ã€ã«ã¢ãŒã«ã€ãã®åãæ±ãïŒãã©ãããã©ãŒã 暪æã§ã®äœæãšå±é
Zipãã¡ã€ã«ã¢ãŒã«ã€ãã¯ããã¡ã€ã«ããã£ã¬ã¯ããªãå§çž®ããŠãŸãšããããã®äžè¬çãªæ¹æ³ã§ãããã®æ®åçã®é«ããããããŒã¿ç®¡çããœãããŠã§ã¢é åžãã¢ãŒã«ã€ãäœæã«äžå¯æ¬ ãªãã®ãšãªã£ãŠããŸãããã®å æ¬çãªã¬ã€ãã§ã¯ãããŸããŸãªããŒã«ãããã°ã©ãã³ã°èšèªããããŠç°ãªããã©ãããã©ãŒã éã§ã®äºææ§ãšã»ãã¥ãªãã£ã確ä¿ããããã®ãã¹ããã©ã¯ãã£ã¹ãåãäžããªãããZipãã¡ã€ã«ã¢ãŒã«ã€ãã®äœæãšå±éã«ã€ããŠæ¢æ±ããŸãã
Zipãã¡ã€ã«ã¢ãŒã«ã€ããçè§£ãã
Zipãã¡ã€ã«ã¢ãŒã«ã€ãã¯ã1ã€ä»¥äžã®å§çž®ããããã¡ã€ã«ããã£ã¬ã¯ããªãå«ãåäžã®ãã¡ã€ã«ã§ããZip圢åŒã¯ãDEFLATEãªã©ã®å¯éããŒã¿å§çž®ã¢ã«ãŽãªãºã ãå©çšããŠãã¢ãŒã«ã€ããããããŒã¿ã®å šäœãµã€ãºãåæžããŸããããã«ãããZipãã¡ã€ã«ã¯ãããã¯ãŒã¯çµç±ã§ã®å€§éã®ããŒã¿è»¢éãããã¯ã¢ããã®ä¿åããœãããŠã§ã¢ããã±ãŒãžã®é åžã«çæ³çã§ãã
Zipãã¡ã€ã«ã䜿çšããã¡ãªãã
- å§çž®: ãã¡ã€ã«ããã£ã¬ã¯ããªã«å¿ èŠãªã¹ãã¬ãŒãžå®¹éãåæžããŸãã
- ãã³ãã«å: è€æ°ã®ãã¡ã€ã«ãã管çããããåäžã®ã¢ãŒã«ã€ãã«ãŸãšããŸãã
- ç§»æ€æ§: Zipãã¡ã€ã«ã¯ãå¹ åºããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãã¢ããªã±ãŒã·ã§ã³ã§ãµããŒããããŠããŸãã
- ã»ãã¥ãªãã£: Zipãã¡ã€ã«ã¯ãã¹ã¯ãŒãã§ä¿è·ããäžæ£ã¢ã¯ã»ã¹ãé²ãããšãã§ããŸãã
- é åž: ãœãããŠã§ã¢ãããŒã¿ã®é åžãç°¡çŽ åããŸãã
Zipãã¡ã€ã«ã¢ãŒã«ã€ãã®äœæ
ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãå©çšå¯èœãªããŒã«ã«å¿ããŠãZipãã¡ã€ã«ã¢ãŒã«ã€ããäœæããæ¹æ³ã¯ããã€ããããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ãŒã¹ãšããã°ã©ãã³ã°èšèªã®äž¡æ¹ã䜿çšããäžè¬çãªæ¹æ³ãæ¢ããŸãã
ã³ãã³ãã©ã€ã³ããŒã«
ã»ãšãã©ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«ã¯ãZipãã¡ã€ã«ãäœæã»å±éããããã®ã³ãã³ãã©ã€ã³ããŒã«ãå«ãŸããŠããŸãããããã®ããŒã«ã¯ã远å ã®ãœãããŠã§ã¢ãå¿ èŠãšããã«ã¢ãŒã«ã€ãã管çããããã®ã·ã³ãã«ã§å¹ççãªæ¹æ³ãæäŸããŸãã
LinuxãšmacOS
zip
ã³ãã³ãã¯ãLinuxãmacOSã·ã¹ãã ã§äžè¬çã«äœ¿çšãããŸããZipãã¡ã€ã«ã¢ãŒã«ã€ããäœæããã«ã¯ã次ã®ã³ãã³ãã䜿çšããŸãïŒ
zip archive_name.zip file1.txt file2.txt directory1/
ãã®ã³ãã³ãã¯ãfile1.txt
ãfile2.txt
ãããã³directory1
ã®ã³ã³ãã³ããå«ãarchive_name.zip
ãšããååã®ã¢ãŒã«ã€ããäœæããŸãã
æ¢åã®ã¢ãŒã«ã€ãã«ãã¡ã€ã«ã远å ããã«ã¯ïŒ
zip -u archive_name.zip file3.txt
æ¢åã®ã¢ãŒã«ã€ããããã¡ã€ã«ãåé€ããã«ã¯ïŒ
zip -d archive_name.zip file1.txt
Windows
Windowsã«ã¯ãçµã¿èŸŒã¿ã®Zipãã¡ã€ã«ãµããŒããæäŸããã³ãã³ãã©ã€ã³ãŠãŒãã£ãªãã£powershell
ãå«ãŸããŠããŸããã¢ãŒã«ã€ããäœæããã«ã¯ïŒ
Compress-Archive -Path 'file1.txt', 'file2.txt', 'directory1' -DestinationPath 'archive_name.zip'
ãã®ã³ãã³ãã¯ãæå®ããããã¡ã€ã«ãšãã£ã¬ã¯ããªãå«ãarchive_name.zip
ãšããååã®ã¢ãŒã«ã€ããäœæããŸãã
ããã°ã©ãã³ã°èšèª
å€ãã®ããã°ã©ãã³ã°èšèªã¯ãZipãã¡ã€ã«ã¢ãŒã«ã€ããäœæã»å±éããããã®ã©ã€ãã©ãªãæäŸããŠããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãPythonãšJavaã䜿çšããŠã¢ãŒã«ã€ããäœæããæ¹æ³ã瀺ããŸãã
Python
Pythonã®zipfile
ã¢ãžã¥ãŒã«ã¯ãZipãã¡ã€ã«ã¢ãŒã«ã€ããæ±ã䟿å©ãªæ¹æ³ãæäŸããŸãã以äžã«ã¢ãŒã«ã€ããäœæããäŸã瀺ããŸãïŒ
import zipfile
def create_zip(file_paths, archive_name):
with zipfile.ZipFile(archive_name, 'w') as zip_file:
for file_path in file_paths:
zip_file.write(file_path)
# Example usage:
file_paths = ['file1.txt', 'file2.txt', 'directory1/file3.txt']
archive_name = 'archive.zip'
create_zip(file_paths, archive_name)
ãã®ã³ãŒãã¹ããããã¯ããã¡ã€ã«ãã¹ã®ãªã¹ããšã¢ãŒã«ã€ãåãåŒæ°ãšããŠåãåãcreate_zip
颿°ãå®çŸ©ããŸãããããŠãæå®ããããã¡ã€ã«ãå«ãZipãã¡ã€ã«ã¢ãŒã«ã€ããäœæããŸãã
ãã£ã¬ã¯ããªãååž°çã«zipã¢ãŒã«ã€ãã«è¿œå ããã«ã¯ãã¹ã¯ãªãããæ¬¡ã®ããã«å€æŽã§ããŸãïŒ
import zipfile
import os
def create_zip(root_dir, archive_name):
with zipfile.ZipFile(archive_name, 'w', zipfile.ZIP_DEFLATED) as zip_file:
for root, _, files in os.walk(root_dir):
for file in files:
file_path = os.path.join(root, file)
zip_file.write(file_path, os.path.relpath(file_path, root_dir))
# Example Usage:
root_dir = 'my_directory'
archive_name = 'my_archive.zip'
create_zip(root_dir, archive_name)
ãã®ã³ãŒãã¯my_directory
ãååž°çã«æ¢çŽ¢ãããã®äžã®ãã¹ãŠã®ãã¡ã€ã«ããã¢ãŒã«ã€ãå
ã®ãã£ã¬ã¯ããªæ§é ãç¶æãããŸãŸzipã¢ãŒã«ã€ãã«è¿œå ããŸãã
Java
Javaã®java.util.zip
ããã±ãŒãžã¯ãZipãã¡ã€ã«ã¢ãŒã«ã€ããæ±ãããã®ã¯ã©ã¹ãæäŸããŸãã以äžã«ã¢ãŒã«ã€ããäœæããäŸã瀺ããŸãïŒ
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipCreator {
public static void main(String[] args) {
String[] filePaths = {"file1.txt", "file2.txt", "directory1/file3.txt"};
String archiveName = "archive.zip";
try {
FileOutputStream fos = new FileOutputStream(archiveName);
ZipOutputStream zipOut = new ZipOutputStream(fos);
for (String filePath : filePaths) {
File fileToZip = new File(filePath);
FileInputStream fis = new FileInputStream(fileToZip);
ZipEntry zipEntry = new ZipEntry(fileToZip.getName());
zipOut.putNextEntry(zipEntry);
byte[] bytes = new byte[1024];
int length;
while ((length = fis.read(bytes)) >= 0) {
zipOut.write(bytes, 0, length);
}
fis.close();
zipOut.closeEntry();
}
zipOut.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
ãã®ã³ãŒãã¹ããããã¯ãæå®ããããã¡ã€ã«ãå«ãarchive.zip
ãšããååã®Zipãã¡ã€ã«ã¢ãŒã«ã€ããäœæããŸããæœåšçãªIOException
ããã£ããããããã®ãšã©ãŒãã³ããªã³ã°ãå«ãŸããŠããŸãã
Zipãã¡ã€ã«ã¢ãŒã«ã€ãã®å±é
Zipãã¡ã€ã«ã¢ãŒã«ã€ãã®å±éã¯ãäœæããããšãšåããããéèŠã§ãããã®ã»ã¯ã·ã§ã³ã§ã¯ãã³ãã³ãã©ã€ã³ããŒã«ãšããã°ã©ãã³ã°èšèªã䜿çšããŠã¢ãŒã«ã€ããå±éããäžè¬çãªæ¹æ³ã«ã€ããŠèª¬æããŸãã
ã³ãã³ãã©ã€ã³ããŒã«
LinuxãšmacOS
unzip
ã³ãã³ãã¯ãLinuxãmacOSã·ã¹ãã ã§Zipãã¡ã€ã«ã¢ãŒã«ã€ããå±éããããã«äœ¿çšãããŸããã¢ãŒã«ã€ãã®ã³ã³ãã³ããå±éããã«ã¯ã次ã®ã³ãã³ãã䜿çšããŸãïŒ
unzip archive_name.zip
ãã®ã³ãã³ãã¯ãarchive_name.zip
ã®ã³ã³ãã³ããçŸåšã®ãã£ã¬ã¯ããªã«å±éããŸãã
ã¢ãŒã«ã€ããç¹å®ã®ãã£ã¬ã¯ããªã«å±éããã«ã¯ïŒ
unzip archive_name.zip -d destination_directory
Windows
Windowsã¯ãPowerShellã§Expand-Archive
ã³ãã³ãã¬ãããæäŸããŠãããzipãã¡ã€ã«ãå±éã§ããŸãïŒ
Expand-Archive -Path 'archive_name.zip' -DestinationPath 'destination_directory'
-DestinationPath
ãã©ã¡ãŒã¿ãçç¥ãããå Žåãã³ã³ãã³ãã¯çŸåšã®ãã£ã¬ã¯ããªã«å±éãããŸãã
ããã°ã©ãã³ã°èšèª
Python
Pythonã®zipfile
ã¢ãžã¥ãŒã«ã¯ãã¢ãŒã«ã€ããå±éããããã®ã¡ãœãããæäŸããŸãã以äžã«äŸã瀺ããŸãïŒ
import zipfile
def extract_zip(archive_name, destination_directory):
with zipfile.ZipFile(archive_name, 'r') as zip_file:
zip_file.extractall(destination_directory)
# Example usage:
archive_name = 'archive.zip'
destination_directory = 'extracted_files'
extract_zip(archive_name, destination_directory)
ãã®ã³ãŒãã¹ããããã¯ãã¢ãŒã«ã€ãåãšå±éå
ãã£ã¬ã¯ããªãåŒæ°ãšããŠåãåãextract_zip
颿°ãå®çŸ©ããŸãããããŠãã¢ãŒã«ã€ãã®ã³ã³ãã³ããæå®ããããã£ã¬ã¯ããªã«å±éããŸãã
Java
Javaã®java.util.zip
ããã±ãŒãžã¯ãã¢ãŒã«ã€ããå±éããããã®ã¯ã©ã¹ãæäŸããŸãã以äžã«äŸã瀺ããŸãïŒ
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class ZipExtractor {
public static void main(String[] args) {
String archiveName = "archive.zip";
String destinationDirectory = "extracted_files";
try {
File destDir = new File(destinationDirectory);
if (!destDir.exists()) {
destDir.mkdirs();
}
FileInputStream fis = new FileInputStream(archiveName);
ZipInputStream zipIn = new ZipInputStream(fis);
ZipEntry entry = zipIn.getNextEntry();
while (entry != null) {
String filePath = destinationDirectory + File.separator + entry.getName();
if (!entry.isDirectory()) {
// if the entry is a file, extracts it
extractFile(zipIn, filePath);
} else {
// if the entry is a directory, make the directory
File dir = new File(filePath);
dir.mkdirs();
}
zipIn.closeEntry();
entry = zipIn.getNextEntry();
}
zipIn.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void extractFile(ZipInputStream zipIn, String filePath) throws IOException {
try (FileOutputStream bos = new FileOutputStream(filePath)) {
byte[] bytesIn = new byte[1024];
int read = 0;
while ((read = zipIn.read(bytesIn)) != -1) {
bos.write(bytesIn, 0, read);
}
}
}
}
ãã®ã³ãŒãã¹ããããã¯ãarchive.zip
ã®ã³ã³ãã³ããextracted_files
ãã£ã¬ã¯ããªã«å±éããŸããextractFile
ã¡ãœããã¯ã¢ãŒã«ã€ãããåã
ã®ãã¡ã€ã«ãå±éããåŠçãè¡ããã³ãŒãã¯zipã¢ãŒã«ã€ãã«ãã£ã¬ã¯ããªãå«ãŸããŠããå Žåã®ãã£ã¬ã¯ããªäœæãåŠçããŸããtry-with-resourcesã䜿çšããŠã¹ããªãŒã ãèªåçã«éãããªãœãŒã¹ãªãŒã¯ãé²ããŸãã
é«åºŠãªãã¯ããã¯
åºæ¬çãªäœæãšå±éãè¶ ããŠãZipãã¡ã€ã«ã¢ãŒã«ã€ãã¯ããŒã¿ã管çãä¿è·ããããã®ããã€ãã®é«åºŠãªæ©èœãæäŸããŸãã
ãã¹ã¯ãŒãä¿è·
Zipãã¡ã€ã«ã¯ãã¹ã¯ãŒãã§ä¿è·ããã¢ãŒã«ã€ããããããŒã¿ãžã®äžæ£ã¢ã¯ã»ã¹ãé²ãããšãã§ããŸããZipãã¡ã€ã«ã®ãã¹ã¯ãŒãä¿è·ã¯æ¯èŒçè匱ã§ãããæ©å¯ããŒã¿ã«å¯ŸããŠåºæ¬çãªã¬ãã«ã®ã»ãã¥ãªãã£ãæäŸããŸãã
ã³ãã³ãã©ã€ã³
Linux/macOSã§zip
ã³ãã³ãã䜿çšããå ŽåïŒ
zip -e archive_name.zip file1.txt file2.txt
ãã®ã³ãã³ãã¯ãã¹ã¯ãŒãã®å ¥åãæ±ãããã®ãã¹ã¯ãŒããã¢ãŒã«ã€ãã®æå·åã«äœ¿çšãããŸãã
PowerShellã¯ãzipã¢ãŒã«ã€ãäœææã®ãã¹ã¯ãŒãä¿è·ãçŽæ¥ãµããŒãããŠããŸããããããå®çŸããã«ã¯ããµãŒãããŒãã£ã®ã©ã€ãã©ãªãããã°ã©ã ãå¿ èŠã«ãªããŸãã
Python
Pythonã®zipfile
ã¢ãžã¥ãŒã«ã¯ãã¹ã¯ãŒãä¿è·ããµããŒãããŠããŸããã䜿çšãããæå·åæ¹åŒïŒZipCryptoïŒã¯è匱ã§ãããšèŠãªãããŠããç¹ã«æ³šæããããšãéèŠã§ããæ©å¯ããŒã¿ã«ã¯ãããå
ç¢ãªæå·åæ¹åŒã䜿çšããããšãäžè¬çã«æšå¥šãããŸãã
import zipfile
def create_password_protected_zip(file_paths, archive_name, password):
with zipfile.ZipFile(archive_name, 'w', zipfile.ZIP_DEFLATED) as zip_file:
for file_path in file_paths:
zip_file.setpassword(password.encode('utf-8'))
zip_file.write(file_path)
# Example usage:
file_paths = ['file1.txt', 'file2.txt']
archive_name = 'protected_archive.zip'
password = 'my_secret_password'
create_password_protected_zip(file_paths, archive_name, password)
Pythonã§ãã¹ã¯ãŒãä¿è·ãããzipãã¡ã€ã«ãå±éããã«ã¯ïŒ
import zipfile
def extract_password_protected_zip(archive_name, destination_directory, password):
with zipfile.ZipFile(archive_name, 'r') as zip_file:
zip_file.setpassword(password.encode('utf-8'))
zip_file.extractall(destination_directory)
# Example Usage
archive_name = 'protected_archive.zip'
destination_directory = 'extracted_files'
password = 'my_secret_password'
extract_password_protected_zip(archive_name, destination_directory, password)
泚æïŒãã¹ã¯ãŒãã¯utf-8ã«ãšã³ã³ãŒãããå¿ èŠããããŸãã
Java
Javaã®çµã¿èŸŒã¿java.util.zip
ããã±ãŒãžã¯ãæšæºã®ZIPæå·åïŒZipCryptoïŒã䜿çšãããã¹ã¯ãŒãä¿è·ãçŽæ¥ãµããŒãããŠããŸãããJavaã§zipãã¡ã€ã«ã®ãã¹ã¯ãŒãä¿è·ãå®çŸããã«ã¯ãéåžžãTrueZIPãªã©ã®ãµãŒãããŒãã£ã©ã€ãã©ãªã«é Œãå¿
èŠããããŸãã
éèŠãªã»ãã¥ãªãã£ããŒãïŒ ZipCryptoã¯èåŒ±ãªæå·åã¢ã«ãŽãªãºã ã§ããæ©å¯ããŒã¿ã«ããã䜿çšããªãã§ãã ããã匷åãªã»ãã¥ãªãã£ã®ããã«ã¯ãAESã®ãããªããå ç¢ãªæå·åæ¹åŒã®äœ¿çšãæ€èšããŠãã ããã
巚倧ãªã¢ãŒã«ã€ãã®åãæ±ã
巚倧ãªã¢ãŒã«ã€ããæ±ãéã«ã¯ãã¡ã¢ãªäœ¿çšéãšããã©ãŒãã³ã¹ãèæ ®ããããšãäžå¯æ¬ ã§ããã¹ããªãŒãã³ã°æè¡ã䜿çšããããšã§ãã¢ãŒã«ã€ãå šäœãã¡ã¢ãªã«ããŒãããããšãªã巚倧ãªã¢ãŒã«ã€ããåŠçã§ããŸãã
Python
Pythonã®`zipfile`ã¢ãžã¥ãŒã«ã¯å€§ããªãã¡ã€ã«ãæ±ãããšãã§ããŸããéåžžã«å·šå€§ãªã¢ãŒã«ã€ãã®å Žåã¯ã`extractall()`ã䜿çšãã代ããã«ãã¢ãŒã«ã€ãã®ã³ã³ãã³ããå埩åŠçããããšãæ€èšããŠãã ããïŒ
import zipfile
import os
def extract_large_zip(archive_name, destination_directory):
with zipfile.ZipFile(archive_name, 'r') as zip_file:
for member in zip_file.infolist():
# Extract each member individually
zip_file.extract(member, destination_directory)
Java
Javaã®`ZipInputStream`ããã³`ZipOutputStream`ã¯ã©ã¹ã¯ããŒã¿ã®ã¹ããªãŒãã³ã°ãå¯èœã«ããããã¯å·šå€§ãªã¢ãŒã«ã€ããå¹ççã«æ±ãäžã§éèŠã§ããæäŸãããŠããå±éã®äŸã¯ããã§ã«ã¹ããªãŒãã³ã°ã¢ãããŒãã䜿çšããŠããŸãã
ç°ãªãæåãšã³ã³ãŒãã£ã³ã°ã®åãæ±ã
Zipãã¡ã€ã«ã¯ãç°ãªãæåãšã³ã³ãŒãã£ã³ã°ã䜿çšããŠãã¡ã€ã«åãä¿åã§ããŸããç°ãªãã·ã¹ãã éã§ãã¡ã€ã«åãæ£ãã衚瀺ãããããã«ããã«ã¯ãæåãšã³ã³ãŒãã£ã³ã°ãæ£ããåŠçããããšãäžå¯æ¬ ã§ãã
çŸä»£ã®zipããŒã«ã¯äžè¬çã«UTF-8ãšã³ã³ãŒãã£ã³ã°ããµããŒãããŠãããããã«ããå¹ åºãæåãæ±ãããšãã§ããŸããããããå€ãzipãã¡ã€ã«ã¯CP437ãGBKãªã©ã®ã¬ã¬ã·ãŒãšã³ã³ãŒãã£ã³ã°ã䜿çšããŠããå ŽåããããŸãã
zipãã¡ã€ã«ãäœæããéã¯ãå¯èœãªéãUTF-8ãšã³ã³ãŒãã£ã³ã°ã䜿çšããããã«ããŠãã ããããã¡ã€ã«ãå±éããéã¯ãå€ãã¢ãŒã«ã€ããæ±ã£ãŠããå Žåãç°ãªããšã³ã³ãŒãã£ã³ã°ãæ€åºããŠåŠçããå¿ èŠããããããããŸããã
Python
Python 3ã¯ããã©ã«ãã§UTF-8ãšã³ã³ãŒãã£ã³ã°ã䜿çšããŸããããããå€ãã¢ãŒã«ã€ããæ±ãéã«ã¯ããšã³ã³ãŒãã£ã³ã°ãæç€ºçã«æå®ããå¿ èŠãããå ŽåããããŸãããšã³ã³ãŒãã£ã³ã°ã®åé¡ãçºçããå Žåã¯ããã¡ã€ã«åãç°ãªããšã³ã³ãŒãã£ã³ã°ã§ãã³ãŒãããŠã¿ãããšãã§ããŸãã
Java
JavaããŸããã·ã¹ãã ã®ããã©ã«ããšã³ã³ãŒãã£ã³ã°ãããã©ã«ããšããŠããŸããzipãã¡ã€ã«ãäœæããéã«ã¯ã`Charset`ã¯ã©ã¹ã䜿çšããŠãšã³ã³ãŒãã£ã³ã°ãæå®ã§ããŸããå±éããéã«ã¯ãé©åãªæåã»ããèšå®ãæã€`InputStreamReader`ã`OutputStreamWriter`ã䜿çšããŠãç°ãªããšã³ã³ãŒãã£ã³ã°ãåŠçããå¿ èŠããããããããŸããã
ã¯ãã¹ãã©ãããã©ãŒã äºææ§
Zipãã¡ã€ã«ã¢ãŒã«ã€ããæ±ãéã«ã¯ãã¯ãã¹ãã©ãããã©ãŒã ã®äºææ§ã確ä¿ããããšãéèŠã§ãããã®ã»ã¯ã·ã§ã³ã§ã¯ãç°ãªããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãã¢ããªã±ãŒã·ã§ã³éã§ã®äºææ§ãæå€§éã«é«ããããã®äž»èŠãªèæ ®äºé ã«ã€ããŠèª¬æããŸãã
ãã¡ã€ã«åã®ãšã³ã³ãŒãã£ã³ã°
åè¿°ã®éãããã¡ã€ã«åã®ãšã³ã³ãŒãã£ã³ã°ã¯ã¯ãã¹ãã©ãããã©ãŒã äºææ§ã«ãããéèŠãªèŠçŽ ã§ããçŸä»£ã®zipãã¡ã€ã«ã«ã¯UTF-8ãæšå¥šããããšã³ã³ãŒãã£ã³ã°ã§ãããå€ãã¢ãŒã«ã€ãã¯ã¬ã¬ã·ãŒãšã³ã³ãŒãã£ã³ã°ã䜿çšããŠããå ŽåããããŸããã¢ãŒã«ã€ããäœæããéã¯ãåžžã«UTF-8ãšã³ã³ãŒãã£ã³ã°ã䜿çšããŠãã ãããå±éããéã¯ãå¿ èŠã«å¿ããŠç°ãªããšã³ã³ãŒãã£ã³ã°ã«å¯Ÿå¿ã§ããããã«æºåããŠãã ããã
ãã¹åºåãæå
ç°ãªããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¯ãç°ãªããã¹åºåãæåã䜿çšããŸãïŒäŸïŒLinux/macOSã§ã¯/
ãWindowsã§ã¯\
ïŒãZipãã¡ã€ã«ã¯ããã¹æ
å ±ããã©ã¯ãŒãã¹ã©ãã·ã¥ïŒ/
ïŒã䜿çšããŠä¿åããŸããZipãã¡ã€ã«ãäœæããéã¯ãç°ãªããã©ãããã©ãŒã éã§ã®äºææ§ã確ä¿ãããããåžžã«ãã¹åºåãæåãšããŠãã©ã¯ãŒãã¹ã©ãã·ã¥ã䜿çšããŠãã ããã
æ¹è¡ã³ãŒã
ç°ãªããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¯ãç°ãªãæ¹è¡ã³ãŒãã䜿çšããŸãïŒäŸïŒLinux/macOSã§ã¯LFãWindowsã§ã¯CRLFïŒãZipãã¡ã€ã«ã¯éåžžãæ¹è¡ã³ãŒããçŽæ¥ä¿åããŸãããããã¯éåžžãã¢ãŒã«ã€ãå ã®åã ã®ãã¡ã€ã«ã«ãã£ãŠåŠçãããããã§ãããã ããããã¹ããã¡ã€ã«ãã¢ãŒã«ã€ãããå Žåã¯ãç°ãªãã·ã¹ãã ã§ãã¡ã€ã«ãæ£ãã衚瀺ãããããã«ãæ¹è¡ã³ãŒãã®å€æãèæ ®ããå¿ èŠããããããããŸããã
ãã¡ã€ã«ããŒããã·ã§ã³
Zipãã¡ã€ã«ã¯ãã¡ã€ã«ããŒããã·ã§ã³ãä¿åã§ããŸããããããã®ããŒããã·ã§ã³ã®æ±ãã¯ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«ãã£ãŠç°ãªããŸããWindowsã«ã¯ãLinux/macOSã®ãããªå®è¡æš©éã®æŠå¿µããããŸãããç¹å®ã®ããŒããã·ã§ã³ãæã€ãã¡ã€ã«ãã¢ãŒã«ã€ãããéã¯ãç°ãªããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ã¢ãŒã«ã€ããå±éããããšãã«ããããã®ããŒããã·ã§ã³ãä¿æãããªãå¯èœæ§ãããããšã«æ³šæããŠãã ããã
ã»ãã¥ãªãã£ã«é¢ããèæ ®äºé
Zipãã¡ã€ã«ã¢ãŒã«ã€ããæ±ãéã«ã¯ãã»ãã¥ãªãã£ãéèŠãªèæ ®äºé ãšãªããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãæœåšçãªã»ãã¥ãªãã£ãªã¹ã¯ãšãããã軜æžããããã®ãã¹ããã©ã¯ãã£ã¹ã«ã€ããŠèª¬æããŸãã
ZipçåŒŸæ»æ
Zipç匟ãšã¯ãå§çž®ãããå°éã®ããŒã¿ãå±éæã«éåžžã«å€§ããªãµã€ãºã«èšãäžããæªæã®ããã¢ãŒã«ã€ãã®ããšã§ããããã«ãããã·ã¹ãã ãªãœãŒã¹ãæ¯æžãããµãŒãã¹æåŠïŒDoSïŒæ»æãåŒãèµ·ããå¯èœæ§ããããŸãã
ZipçåŒŸæ»æããä¿è·ããããã«ã¯ãå±éæã«äœ¿çšã§ããã¡ã¢ãªãšãã£ã¹ã¯å®¹éãå¶éããããšãäžå¯æ¬ ã§ããæå€§ãã¡ã€ã«ãµã€ãºãšå±éåŸã®åèšãµã€ãºå¶éãèšå®ããŠãã ããã
ãã¹ãã©ããŒãµã«ã®è匱æ§
ãã¹ãã©ããŒãµã«ã®è匱æ§ã¯ãZipãã¡ã€ã«ã«ãã£ã¬ã¯ããªãã©ããŒãµã«ã·ãŒã±ã³ã¹ïŒäŸïŒ../
ïŒãå«ããã¡ã€ã«åã®ãšã³ããªãå«ãŸããŠããå Žåã«çºçããŸããããã«ãããæ»æè
ã¯æå³ããå±éãã£ã¬ã¯ããªã®å€ã«ãã¡ã€ã«ãäžæžããŸãã¯äœæããããšãå¯èœã«ãªããŸãã
ãã¹ãã©ããŒãµã«ã®è匱æ§ãé²ãã«ã¯ãZipãã¡ã€ã«ã®ãšã³ããªã®ãã¡ã€ã«åãå±éåã«æ³šææ·±ãæ€èšŒããŠãã ããããã£ã¬ã¯ããªãã©ããŒãµã«ã·ãŒã±ã³ã¹ãå«ããã¡ã€ã«åã¯ãã¹ãŠæåŠããŠãã ããã
ãã«ãŠã§ã¢ã®é åž
Zipãã¡ã€ã«ã¯ãã«ãŠã§ã¢ã®é åžã«äœ¿çšãããããšããããŸããå±éããåã«ãZipãã¡ã€ã«ããŠã€ã«ã¹ããã®ä»ã®æªæã®ãããœãããŠã§ã¢ã§ã¹ãã£ã³ããããšãéèŠã§ãã
èåŒ±ãªæå·å
åè¿°ã®éããZipCryptoæå·åã¢ã«ãŽãªãºã ã¯è匱ã§ãããšèŠãªãããŠããŸããæ©å¯ããŒã¿ã«ããã䜿çšããªãã§ãã ããã匷åãªã»ãã¥ãªãã£ã®ããã«ã¯ãããå ç¢ãªæå·åæ¹åŒã䜿çšããŠãã ããã
çµè«
Zipãã¡ã€ã«ã¢ãŒã«ã€ãã¯ããã¡ã€ã«ããã£ã¬ã¯ããªãå§çž®ããã³ãã«ãé åžããããã®åŒ·åã§å€çšéãªããŒã«ã§ããäœæãšå±éã®ããã»ã¹ããããŠé«åºŠãªãã¯ããã¯ãã»ãã¥ãªãã£ã«é¢ããèæ ®äºé ãçè§£ããããšã§ãç°ãªããã©ãããã©ãŒã éã§ããŒã¿ã广çã«ç®¡çããä¿è·ããããšãã§ããŸããéçºè ãã·ã¹ãã 管çè ãããŒã¿ãµã€ãšã³ãã£ã¹ãã®ãããã§ãã£ãŠããZipãã¡ã€ã«ã¢ãŒã«ã€ãã®åãæ±ããç¿åŸããããšã¯ã仿¥ã®çžäºæ¥ç¶ãããäžçã§ããŒã¿ãæ±ãäžã§äžå¯æ¬ ãªã¹ãã«ã§ãã