예를 들어 ZipArchive
이라고 가정 해보십시오. 이 클래스를 사용하면 실제 파일 시스템에 첨부되지 않은 파일 시스템을 처리합니다. 가상 파일 시스템에 대한 경로 식 정규화
.
├── Foo
│ └── File1
└── Bar
└── File2
이제 하나가 File1
를 읽을 수 있습니다. File1
에 File2
에 대한 상대 참조가 있으면 ../Bar/File2
으로 기록됩니다.
문제는 하나의 결과가합니다 (ZipArchive
는 절대 경로와 상대의 조합을 처리 할 수 없습니다) Bar/File2
되도록 경로 ../Bar/File2
으로 File1
(Foo/
)의 디렉토리를 결합 할 수있는 방법입니다. (dir
및 rel
)와
시도 솔루션 :
이Path.Combine
(dir,rel)
에만 따라서 항목이 해결 될 수없는, 둘 사이에/
을 배치;new
DirectoryInfo
(Path.Combine(dir,rel)).FullName
은 현재 디렉토리 (cd
)가 포함 된 파트를 생성합니다. 및Path.GetFullPath
(Path.Combine(dir,rel)).FullName
는 않습니다 같은 하나는 상대 경로를 정상화 할 수 있습니까
? 물론 정규화 알고리즘을 작성할 수는 있지만 알고리즘이 사양의 일부가 부족할 확률이 높습니다.