여러 파일이 들어있는 디렉토리가 있습니다. 이 폴더를 zip 또는 tar.gz 파일로 압축하려고합니다. C#으로 그의 작업을 어떻게 할 수 있습니까?.NET을 사용하여 디렉토리를 압축하는 방법은 무엇입니까?
답변
에있다. 그것은 매우 풍부하고 유용한 기능을 가지고 있습니다.
편집 : SharpZipLib를 사용에
string[] MainDirs = Directory.GetDirectories(DirString);
for (int i = 0; i < MainDirs.Length; i++)
{
using (ZipFile zip = new ZipFile())
{
zip.UseUnicodeAsNecessary = true;
zip.AddDirectory(MainDirs[i]);
zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
zip.Comment = "This zip was created at " + System.DateTime.Now.ToString("G");
zip.Save(string.Format("test{0}.zip", i));
}
}
답변에 샘플 코드를 추가하기 만하면됩니다. . –
이전 직장에서는 #ziplib을 사용했습니다.
C#에서 커맨드 라인에서 사용 7zip은 ->LZMA SDK는 C# .NET을 지원하고 codesamples 당신은 DotNetZip Library를 사용할 수있는 패키지
봐. 그것은 C#에서 GZip과 ZIP 압축을 모두 지원합니다.
here에는 SharpZipLib로 디렉토리를 압축하기 위해 수행해야 할 작업이 요약되어 있습니다.
타사 라이브러리없이이 작업을 수행 할 수있는 가능성을 논의한 good discussion입니다. 나는 당신이 그것에 대해 살펴 봐야한다고 생각합니다.
여기에 작업에 도움이되는 샘플 코드가 large repository 있습니다. 행운을 빌어 요.
Gzip으로는 마이크로 소프트 프레임 워크 2.0 onw의 일부입니다 ard. GZipStream은 System.IO.Compression 네임 스페이스 아래에 있습니다.
이 클래스로 디렉토리를 압축하려면 파일 모음을 포함하는 직렬화 가능 클래스 (예 : 디렉토리)를 만들어야합니다.
Files 클래스에는 file에서 바이트를 읽는 file-name과 file-stream이 포함됩니다. 디렉토리에서 GZip을 적용하면 하나씩 파일을 읽고 GZipStream에 씁니다.
또 다른 3.5 이전 옵션은 J 번호에서 압축 유틸리티를 사용하는 것입니다. 결국 .Net은 코드가 원래 작성된 언어를 신경 쓰지 않습니다 ;-).이 작업을 수행하는 방법에 대한
기사 :
문제는 아주 오래 그래서 답변입니다.
2012 년 말부터 우수 답변 : .NET 4.5 및 포함 된 System.IO.Compression
및 System.IO.Compression.ZipArchive
네임 스페이스 클래스를 사용하십시오. http://www.codeproject.com/Articles/381661/Creating-Zip-Files-Easily-in-NET
2014/2015 년 이후 FF : 로슬린와 전체 프레임 워크 라이브러리를 오픈 소스로 공개되었다을 AfaI 그래서, 당신을 이해 : 많은 예
하나는 인터넷에서 검색하면 사용자가 수신 링크 4.5 클래스에서 코드를 추출하는 것은 자유 롭다. (실제로는 시스템마다 다르므로) 이전 .NET 프레임 워크의 라이브러리로 사용할 수있다. 어쩌면 다른 클래스를 사용하는 것보다 라이센스면에서 약간의 이점을 얻을 수 있습니다.하지만 이것은 사용자가 분석해야합니다.
- 1. 특정 디렉토리를 루트로 사용하여 디렉토리를 압축하는 명령
- 2. 내장 된 압축 클래스를 사용하여 디렉토리를 압축하는 방법은 무엇입니까?
- 3. C++에서 libbz2를 사용하여 디렉토리를 압축하는 방법
- 4. ASP에서 JSON을 압축하는 방법은 무엇입니까?
- 5. PHP로 JSON을 압축하는 방법은 무엇입니까?
- 6. FSharp에서 파일을 압축하는 방법은 무엇입니까?
- 7. Xcode 프로젝트를 압축하는 방법은 무엇입니까?
- 8. ASPX 페이지를 압축하는 방법은 무엇입니까?
- 9. C# .Net을 사용하여 화면을 캡쳐하는 방법은 무엇입니까?
- 10. .NET을 사용하여 XML 파일을 정렬하는 방법은 무엇입니까?
- 11. .NET을 사용하여 데이터베이스를 설치하고 설정하는 방법은 무엇입니까?
- 12. .NET을 사용하여 특정 모니터를 끄는 방법은 무엇입니까?
- 13. mod_rewrite를 사용하여 URL에서 디렉토리를 제거하는 방법은 무엇입니까?
- 14. Silverlight에서 캡처 한 비디오를 압축하는 방법은 무엇입니까?
- 15. 디렉토리를 패치하는 방법은 무엇입니까?
- 16. PowerShell을 사용하여 여러 파일을 하나의 압축 파일로 압축하는 방법은 무엇입니까?
- 17. ANT를 사용하여 두 개의 폴더를 압축하는 방법은 무엇입니까?
- 18. GZipStream 클래스를 사용하여 GZip 파일에서 여러 파일을 압축하는 방법은 무엇입니까?
- 19. 추적 된 변경 사항 만 사용하여 파일을 압축하는 방법은 무엇입니까?
- 20. Python에서 RE를 사용하여 반복 문자를 단일 문자로 압축하는 방법은 무엇입니까?
- 21. .NET을 사용하여 HTTP 요청 캡처
- 22. eiffel에서 디렉토리를 트래버스하는 방법은 무엇입니까?
- 23. 날짜를 압축하는 가장 좋은 방법은 무엇입니까?
- 24. MultiWidget의 MultiWidget에서 처음으로 압축하는 방법은 무엇입니까?
- 25. Qt에서 몇 파일을 압축하여 압축하는 방법은 무엇입니까?
- 26. 유향 그래프에서 반복 분기를 압축하는 방법은 무엇입니까?
- 27. Java에서 기존 파일을 압축하는 간단한 방법은 무엇입니까?
- 28. 캐시 디렉토리를 테스트하는 방법은 무엇입니까?
- 29. Win32에서 디렉토리를 감지하는 방법은 무엇입니까?
- 30. .git 디렉토리를 삭제하는 방법은 무엇입니까?
중복 : http://stackoverflow.com/questions/384955/best-easiest-way-to-create-zip-archive-in-net –