Phát hiện định dạng tệp và kiểm tra tính tương thích của định dạng

Đôi khi cần phải xác định định dạng của tài liệu trước khi mở vì phần mở rộng của tệp không đảm bảo rằng nội dung của tệp là phù hợp. Ví dụ: được biết Crystal Reports thường xuất tài liệu ở định dạng RTF nhưng lại cung cấp cho chúng phần mở rộng .doc.

Aspose.Words cung cấp khả năng lấy thông tin về loại tệp để tránh ngoại lệ nếu bạn không chắc chắn nội dung thực tế của tệp là gì.

Phát hiện định dạng tệp mà không có ngoại lệ

Khi bạn đang xử lý nhiều tài liệu ở các định dạng tệp khác nhau, bạn có thể cần tách những tệp mà Aspose.Words có thể xử lý khỏi những tệp không thể xử lý. Bạn cũng có thể muốn biết tại sao một số tài liệu không thể được xử lý.

Nếu bạn cố tải tệp vào đối tượng Document và Aspose.Words không thể nhận dạng định dạng tệp hoặc định dạng đó không được hỗ trợ, Aspose.Words sẽ đưa ra một ngoại lệ. Bạn có thể nắm bắt những ngoại lệ đó và phân tích chúng, nhưng Aspose.Words cũng cung cấp phương thức DetectFileFormat cho phép chúng tôi nhanh chóng xác định định dạng tệp mà không cần tải tài liệu có thể có các ngoại lệ. Phương thức này trả về một đối tượng FileFormatInfo chứa thông tin được phát hiện về loại tệp.

Kiểm tra khả năng tương thích định dạng tệp

Chúng ta có thể kiểm tra tính tương thích định dạng của tất cả các tệp trong thư mục đã chọn và sắp xếp chúng theo định dạng vào các thư mục con tương ứng.

Vì chúng ta đang xử lý nội dung trong một thư mục, điều đầu tiên chúng ta cần làm là lấy một tập hợp tất cả các tệp trong thư mục này bằng phương thức GetFiles của lớp Directory (từ không gian tên System.IO).

Ví dụ mã sau đây cho thấy cách lấy danh sách tất cả các tệp trong thư mục:

Khi tất cả các tệp được thu thập, phần còn lại của công việc được thực hiện bằng phương pháp DetectFileFormat, phương pháp này sẽ kiểm tra định dạng tệp.

Ví dụ về mã sau đây cho thấy cách lặp qua danh sách tệp đã thu thập, kiểm tra định dạng của từng tệp và di chuyển từng tệp vào thư mục thích hợp:

Các tệp được chuyển vào các thư mục con thích hợp bằng phương thức Move của lớp File, từ cùng một không gian tên System.IO.

Các tập tin sau được sử dụng trong ví dụ trên. Tên tệp ở bên trái và mô tả của nó ở bên phải:

Group của tập tin Tài liệu đầu vào Kiểu
Các định dạng tập tin được hỗ trợ Tệp thử nghiệm (Doc).doc Tài liệu Microsoft Word 95/6.0 hoặc Microsoft Word 97 – 2003.
Tệp thử nghiệm (Dot).dot Mẫu Microsoft Word 95/6.0 hoặc Microsoft Word 97 – 2003.
Tệp thử nghiệm (Docx).docx Tài liệu Office Open XML WordprocessingML không có macro.
Tệp thử nghiệm (Docm).docm Office Open XML Tài liệu WordprocessingML có macro.
Tệp thử nghiệm (Dotx).dotx Mẫu XML WordprocessingML của Office Open.
Tệp kiểm tra (Dotm).dotm Mẫu Office Open XML WordprocessingML có macro.
Tệp kiểm tra (XML).xml Tài liệu OOXML FlatOPC.
Tệp kiểm tra (RTF).rtf Tài liệu định dạng văn bản phong phú.
Tệp thử nghiệm (WordML).xml Tài liệu WordprocessingML Microsoft Word 2003.
Tệp thử nghiệm (HTML).html Tài liệu HTML.
Tệp thử nghiệm (MHTML).mhtml Tài liệu MHTML (Web archive).
Tệp kiểm tra (Odt).odt Văn bản OpenDocument (OpenOffice Writer).
Tệp thử nghiệm (Ott).ott Mẫu tài liệu OpenDocument.
Tệp thử nghiệm (DocPreWord60).doc Tài liệu Microsoft Word 2.0.
Tài liệu được mã hóa Tệp thử nghiệm (Enc).doc Tài liệu Microsoft Word 95/6.0 hoặc Microsoft Word 97 – 2003 được mã hóa.
Tệp thử nghiệm (Enc).docx Văn phòng được mã hóa Tài liệu XML WordprocessingML mở.
Định dạng tệp không được hỗ trợ Tệp thử nghiệm (JPG).jpg tập tin hình ảnh JPEG.