Domanda

Se qualcuno mi invia un documento (.pdf, .doc, .xls, ppt, .ogg, mp3, png, ecc.) senza estensione, come posso determinare il tipo di file? Il comando / usr / bin / file non sempre indovina o dice semplicemente che ho un documento di Microsoft Office. Vorrei sapere esattamente in modo da poter aggiungere l'estensione al nome del file.

È stato utile?

Soluzione

Puoi inventare le tue regole aggiungendole a / etc / magic

file man per maggiori dettagli. È difficile ottenere sempre questi corretti, tuttavia ho avuto un successo ragionevole.

Altri suggerimenti

Prova il mimetype (1).

Per Perl, guarda File :: MimeInfo .

Alcuni degli altri poster finora sembrano trascurare alcune cose.

File :: MimeInfo utilizza lo stesso database MimeInfo utilizzato da 'file' per identificare i file. Quindi è improbabile che faccia qualcosa di diverso.

File :: Type è probabilmente interessante, dato che si basa solo su se stesso, ma questo porta a un comico script lungo pieno di dichiarazioni "if". Ma questo, per sua stessa natura, è improbabile che riguardi cose che "file" già non coprono.

Il meglio che puoi fare con tipi di file sconosciuti è provare a aprirli con un editor esadecimale, oppure farli scorrere attraverso 'stringhe' e vedere se riconosci qualcosa. Se riesci a identificare un file, potresti scegliere File :: Type come tuo soluzione perché, per quanto ne so, è almeno facile da estendere.

Puoi usare il modulo Perl: File :: Type

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top