나는 내 응용 프로그램 내에서 NSTask를 사용하여 zip 명령을 실행하고 있습니다. 인수로 전달되는 파일/폴더를 가리키는 경로가 압축됩니다.명령 줄에서 압축 - 경로 요소를 트리밍하는 방법
문제는 -j 옵션을 사용하지 않으면 최종 zip이 zip 내에 불합리한 파일 경로로 끝나는 것입니다 (예 : "/ private/var/folders/A5/A5CusLQaEo4mop-reb-SYE +++ TI/-Tmp -/9101A216-5A6A-4CD6-A477-E4B86E007476-51228-00014BCB9514323F/myfile.rtf "). 내가 -j 옵션을 추가하면 어디서든 깊은 중첩 된 폴더 내의 모든 파일이
이있는 경우 그러나, 그때 나는 끊임없이 내가 NSTask을 실행하기 전에 경로를 설정하려고했습니다 이름 충돌로 실행
[[NSFileManager defaultManager] changeCurrentDirectoryPath:path];
우편에 대한 문서가 진실 말하고 있었다 희망에 기본적으로
을, 지퍼
,691 (현재 디렉토리에 기준)의 전체 경로를 저장합니다
그러나 예상대로 작동하지 않았습니다. -j 및 -p 및 -r의 설정을 조정하면 위에서 언급 한 문제가 여러 가지 조합으로 생성됩니다.
질문 : 내가 좋아하는 디렉토리의 집합을 어떻게
- /일부/긴/경로/SUB2/파일 1 /some/long/path/sub1/file1.txt 이 .txt
과는 내용이있는 지퍼로 지퍼
-
우편의 미묘한에 어떤 조언을3210
/sub2/file1.txt
/sub1/file1.txt 감사합니다.----- 편집
하나 내가 추가하는 것을 잊었다 다른 것은이 전달되는 원래의 디렉토리 "경로", 그래서 원하는 결과가 내 마음도 예상 결과 것입니다. 대신 이전 작업을 실행에
[[NSFileManager defaultManager] changeCurrentDirectoryPath:path];
사용 -[NSTask setCurrentDirectoryPath:]
의
이것은 훌륭한 솔루션처럼 보입니다. 감사합니다. 어떻게 작업 별 디렉토리 방법을 놓쳤는 지 모르겠습니다. 나는 내가 다른 길을 발견 할 수 있었기 때문에 이것을 시험하지 않았다. 내가 이것에 관해 가지고있는 또 다른 질문은, 그리고 내가 제공하는 해결책에 관한 것입니다. 두 디렉토리가 공통의 부모를 가지지 않는다면 어떨까요? – SG1
@ SG1 디렉토리에 공통의 부모가없는 경우'zip' 명령 행 유틸리티가 그렇게 할 수 있다고 생각하지 않습니다. 이상적인 것은 아니지만 디렉토리를 일부 디렉토리에 복사 할 수 있습니다. –