ICSharpCode.SharpZipLib.Zip.ZipOutputStream
을 사용하여 빈 폴더가 포함 된 zip 파일을 만들 수 있기를 원합니다. ICSharpCode.SharpZipLib.Zip.FastZip.CreateEmptyDirectories = true
을 사용할 수 있지만 FastZip은 UTF8 파일 이름을 허용하지 않습니다.ZipOutputStream을 사용하여 zip 파일에 EmptyFolder 또는 디렉토리를 추가하는 방법
1
A
답변
0
(나는 인용) http://community.sharpdevelop.net/forums/p/10856/29901.aspx를 참조하십시오 "우리의 현재 로드맵은 처리 UTF 항목의 파일 이름을 포함 [...]"그 UTF 파일 이름을 이해하는 나를 이끌 것 는 현재 지원되지 않습니다.
0
나는 이것이 매우 오래되었다는 것을 알고 있지만 같은 문제 (ZipOutputStream으로 빈 디렉토리를 압축)를 보았습니다.
다른 상위 디렉토리를 기반으로 재귀 호출을 만들고 있습니다.
public void CompressFolder(string path, ZipOutputStream zipStream, int folderOffset)
{
var files = Directory.GetFiles(path);
var directories = Directory.GetDirectories(path);
//this is where I add the empty directory
//code begin
if (files.Count() == 0 && directories.Count() == 0)
{
DirectoryInfo di = new DirectoryInfo(path);
string cleanName = ZipEntry.CleanName(path.Substring(folderOffset)) + "/";
ZipEntry zipEntry = new ZipEntry(cleanName);
zipEntry.DateTime = di.LastWriteTime;
zipStream.PutNextEntry(zipEntry);
zipStream.CloseEntry();
return;
}
//code end
foreach (string file in files)
{
FileInfo fileInfo = new FileInfo(file);
string cleanName = ZipEntry.CleanName(file.Substring(folderOffset));
ZipEntry zipEntry = new ZipEntry(cleanName);
zipEntry.DateTime = fileInfo.LastWriteTime;
zipEntry.Size = fileInfo.Length;
zipStream.PutNextEntry(zipEntry);
byte[] numArray = new byte[4096];
using (FileStream fileStream = File.OpenRead(file))
{
StreamUtils.Copy(fileStream, zipStream, numArray);
}
zipStream.CloseEntry();
}
foreach (string directory in directories)
{
CompressFolder(directory, zipStream, folderOffset);
}
}
관련 문제
- 1. zip 보관 파일에 파일을 업로드하는 방법
- 2. XmlFile을 사용하여 Config 파일에 값을 추가하는 방법
- 3. JAVA를 사용하여 zip 파일에 폴더가있는 폴더 추가
- 4. 특정 디렉토리를 루트로 사용하여 디렉토리를 압축하는 명령
- 5. zip 파일에 액세스
- 6. zip 파일에 라이센스 키 추가
- 7. SSIS 2005 zip 작업을 추가하는 방법?
- 8. 루트 디렉토리없이 zip 파일에 파일과 dir을 추가하는 방법은 무엇입니까?
- 9. PHP를 사용하여 폴더 또는 파일 또는 디렉토리를 탐색하는 방법
- 10. mercurials에 도트 디렉토리를 추가하는 방법 hgignore
- 11. 모든 zip 파일을 새 파일에 추가
- 12. 기존 항목의 전체 디렉토리를 추가하는 방법
- 13. winformapplication에 현재 작업 디렉토리를 추가하는 방법
- 14. Java의 기존 zip 파일에 항목을 추가하려면 어떻게합니까?
- 15. zip 파일에 원격 파일 추가
- 16. JSON 또는 텍스트 파일에 가장 적합한 zip 압축 수준?
- 17. 파이썬을 사용하여 CSV 파일에 새 줄을 추가하는 방법
- 18. rubyzip을 사용하여 zip 아카이브 내의 디렉토리를 두 번째 zip 아카이브로 복사하는 방법은 무엇입니까?
- 19. .msi의 Access 파일에 버전 번호를 추가하는 방법
- 20. Eclipse 또는 Maven이 bin 디렉토리를 만듭니다. .launch 파일에 문제가 발생했습니다.
- 21. html 파일에 메타 데이터를 추가하는 방법
- 22. Java에서 디렉토리를 압축하면 같은 파일을 사용하는 다른 프로세스에 영향을 줍니까?
- 23. nerdtree를 사용하여 디렉토리를 만드는 방법
- 24. 파일 또는 디렉터리를 추가하는 방법 ClickOnce 배포
- 25. 아카이브에 빈 디렉토리를 추가합니다.
- 26. SWF 파일에 "클릭"이벤트를 추가하는 방법
- 27. java를 사용하여 파일에 쓰는 동안 줄 바꿈을 추가하는 방법?
- 28. ZipOutputStream을 사용하여 만든 .war 파일을 배포 할 수 없습니다.
- 29. 로그 파일에 타임 스탬프를 추가하는 방법
- 30. Ajax를 사용하여 EXE 또는 ZIP 또는 XSL 등의 파일을 스트리밍하십시오.
고맙습니다. 저는 ZipOutputStream을 사용하여 UTF8 이름의 파일을 압축 할 수는 있지만, 빈 폴더도 어떻게 압축 할 수 있는지 궁금합니다. – BreakHead