2012-10-29 6 views
2

.NET 기반 CMS 용 플러그인을 작성하고 있으며 처음 실행될 때 javascript, CSS 및 이미지 파일 트리를 풀고 싶습니다. 단일 dll을 제공하기를 원하기 때문에이 디렉토리를 압축하여 리소스로 저장하려고했습니다. 그런 다음 플러그인이 실행되면 필수 파일이 있는지 확인하고 그렇지 않으면 압축을 풉니 다.자원 내에 디렉토리 구조를 저장할 수 있습니까?

리소스가 "평면"인 점은 디렉토리 구조를 설정할 수 없다는 것을 알고 있으므로 어떤 형태의 패킹 만이이를 수행 할 수있는 유일한 방법입니다.

질문은입니다. 먼저이 작업을 수행 할 수있는 것이고 둘째로 .NET에 내장 된 라이브러리가 있습니까? 내장 함수를 사용하려면 Zip 대신 GZip을 사용해야 할 수도 있지만, 달성하려는 작업을 수행하는 기본 방법이 있습니까?


그냥 질문에 무언가를 추가 - 나는 일반적인 기법이 나는 현재 순간에하고있어, 이는 .tar.gz를 사용하는 것으로 알고 있어요. 하지만 이런 이유로 작동하려면 외부 라이브러리를 가져와야하기 때문에 어떤 이유로이 방법이 저를 최적 이하라고 생각합니다. 나는 이것이 네이티브 방식으로 할 수있는 한두 가지 방법이 될 수있는 공통된 일이라고 생각했습니다.

+1

"기사에 대한 링크 형식의 답변은 괜찮습니다."... 아니요, 그들은 아닙니다 :-) Stack Overflow에 대한 대답은 항상 하나의 링크 이상이어야합니다. –

+0

참. 나는 나의 질문이 자극적으로 근본적이었을지도 모른다고 생각했기 때문에 좋았다. - 나는 단지 이런 식으로 자원을 다루지 않았다. - 편집 해주세요 : –

+1

답변이 아니라 비슷한 게시물의 힌트 : http://stackoverflow.com/questions/10677405/how-to-handle-unzipping-zipfile-with-paths-that-are -to-long-duplicate – Jester

답변

2

도 몇 있습니다 패키지 및 및

(닷넷 4.5의 새로운 기능) http://msdn.microsoft.com/en-us/library/system.io.compression.aspx .NET http://msdn.microsoft.com/en-us/library/system.io.packaging.aspx (내가 생각 .NET 3.0 릴리스)와 함께 제공되는 파일 그룹을 압축 할 수있는 몇 가지 방법이 있습니다 무료 오픈 소스 라이브러리 (Sharp Zip Lib : http://www.icsharpcode.net/opensource/sharpziplib/ 및 DotNetZip lib http://dotnetzip.codeplex.com/)를 사용할 수 있습니다. 아마도 다른 사람들이있을 것입니다. 나는 포장 apis뿐만 아니라 둘 다 사용했다. DotNetZip은 사용하기 쉽기 때문에 DotNetZip을 선호하지만, 그 중 어느 것과도 매우 빠르게 생산성을 발휘할 수 있습니다.

공간을 똑똑하게 사용하는 리소스를 압축하는 것이 좋습니다. 그러나 리소스를 추출하는 방법/위치에 리소스를 직접 매핑 할 필요는 없습니다 (리소스를 추출하고 쓰는 코드를 작성하기 때문에 더 이해가된다면 평평하게 보관할 수 있습니다).

+0

고마워 제이슨, 나는 실제로 sharpziplib을보고 있습니다 :). System.IO.Packaging은 내가 찾고있는 것일 수도 있습니다. 나는 그것을 밖으로 시도하고 내가 어떻게 가는지 알려주지. –

+0

저는 현재 프로젝트에서 System.IO.Packaging을 사용하고 있습니다. 새로운 .net 4.5 항목은 더 좋아 보이지만 아직 업그레이드 할 수 없습니다. 행운을 빕니다. –

관련 문제