2017-09-12 4 views
0

파일 경로 나 스트림이있는 경우 파일/스트림에서 Package.Open을 사용하고 System.IO.FileFormatException을 잡는 대신 파일/스트림이 패키지인지 여부를 확인할 수있는 정적 방법이 있습니까?파일을 System.IO.Packaging.Package로 열 수 있는지 여부를 확인하는 방법이 있습니까?

+1

내가 볼 수있는 것은 아닙니다. 그리고 약 10 레벨 아래로 레퍼런스 소스를 밟아 가면, 서면으로 저장 한 작업이 없다는 것을 알 수 있습니다. 나는 심지어 약 20 분 검색에서 ** FileFormatException ** 던져 찾을 수 없습니다. –

답변

3

파일을 .zip 파일로 열어 메타 데이터를 검색하거나 패키지 형식을 확인하는 패키지 사양의 일부를 구현하거나 Open()을 사용하여 예외가 발생할 수 있습니다. (.docx/.xlsx/등 형식은 특정 구조를 따르는 ZIP 파일 일뿐입니다.)

ZIP 헤더를 읽을 수는 있지만 파일이 ZIP 파일인지 만 확인할 수 있습니다. 확실히 이것은 당신에게 많은 것을 사 준다 (있다면).

내 생각 엔 파일을 열고 예외를 잡으려고하는 것이 가장 쉬운 방법입니다. 사양이 변경되면 코드가 계속 작동합니다. 파일 형식을 확인하기 위해 코드를 직접 작성한 경우 유지 관리해야합니다.