そのzipファイルかどうかを確認するためにファイルをテストする良い方法は何ですか?

StackOverflow https://stackoverflow.com/questions/1887041

質問

私は新しいファイルフォーマット仕様として探していますし、仕様はファイルがXMLベースまたはXMLファイルや他のファイルを含むzipファイルのいずれかになりますと言います。

ファイルの拡張子は、どちらの場合も同じです。私はそれが解凍またはちょうど読ん必要があるかどうかを決定するためにファイルをテストすることができどのような方法?

役に立ちましたか?

解決

他のヒント

あなたは、ファイルのこのマジックナンバーを見ることができます。 ZIPアーカイブのものが ZIP形式のWikipediaのページに記載されています:。PK\003\004 or PK\005\006

マジックナンバーのファイルの最初の数バイトをチェックしてください。 Zipファイルには、PK(50 4B)で始まります。 XMLファイルは、これらの文字で始まり、まだ有効ではないように、ファイルの種類に関してはかなり確認することができます。

あなたはそれがテキストファイル(XML)だかどうかを確認するためにファイルを使用したりすることができます実行可能ファイル(ZIP)。 例を参照するには、下にスクロールします。

良い解決策はしかし、ちょうど大声で考えていない...方法について:

try
{
LoadXmlFile(theFile);//Exception if not an xml file
}
catch(Exception ex)
{
LoadZipFile(theFile)
}

あなたはそれが有効なXMLヘッダーが含まれているかどうかを確認するために、ファイルをチェックすることができます。そうでない場合は、それを解凍してみてください。

XMLの仕様はこちらをご覧ください。こちら

マジックナンバー

ファイル

明確にするために、それは50 4B 03 04で始まります。

http://www.pkware.com/documents/casestudies/APPNOTEを参照してください。 TXTする(サイモンPスティーブンスから)

XMLファイルが有効zipファイルであることを非常にそうである、または他の人が言ってきたように、マジックナンバーをチェックすることができます。

-

あなたはそれを解凍してみてください可能性があります。

これはzipファイルで何を使用しているが、ジップライブラリはファイル天気をテストする機能を持っているか、いない可能性がありますに依存します is_zip、test_file_zipまたは何のようなもの...

または上記のマジックナンバーを使用することによって、あなたがしている独自の関数を作成します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top