Récupérer le type d'un fichier

cs_Bestiol Messages postés 833 Date d'inscription dimanche 6 janvier 2002 Statut Membre Dernière intervention 3 novembre 2005 - 27 juil. 2002 à 00:18
ActiveX Messages postés 32 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 22 janvier 2008 - 11 mai 2005 à 03:09
Salut tout le monde !!

Euh... J'ai vraiment l'impression de poser une question idiote :blush) , mais coment on fait pour connaître le type d'un fichier, en fonction de son extension, par exemple...

J'aurais aimé trouver une fonction qui me donne 'Fichier Texte' pour l'extension '.txt', mais j'ai pas trouvé !! :blush)

Merci d'avance !
Bestiol.

3 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
27 juil. 2002 à 00:41
Non, la question n'est pas idiote du tout.
Dans la base de registres, HKEY_CLASSES_ROOT (HKCR)contient les extensions déclarées soit à l'installation de Windows, soit par les divers logiciels. Les extensions sont listées en plaçant un point devant (ex : .txt). A chaque extension, il y a une valeur par défaut nommée...default. Si tu recherches ensuite cette valeur, toujours dans HKCR, tu trouves une autre valeur par défaut également nommée Default qui t'indiques de manières plus claire à qui tu t'adresses. Ainsi, dans notre exemple, nous obtenons "Document texte".
Vérifies avec d'autres extensions et tu seras surpris de constater que ce sont exactement les descriptions qu'affiche l'explorateur de Windows.

Sinon, comment windows ferait-il pour deviner ?

May Delphi be with you.
Delphi advanced
0
cs_Bestiol Messages postés 833 Date d'inscription dimanche 6 janvier 2002 Statut Membre Dernière intervention 3 novembre 2005 1
27 juil. 2002 à 01:12
Salut !

Merci, je connais la base de registre... (lol) J'y ai même jeté un coup d'oeil...
Mais les clés dont tu me parles ne contiennent pas toutes la description attendue... Ou elle est en Anglais... Il n'y a pas une API ? Remarque, il faudrait bien que l'API vérifie à son tour quelque part...

Bah alors je vais faire avec ça... Tant pis pour l'Anglais, et merci de ta réponse !

Bye
Bestiol.
0
ActiveX Messages postés 32 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 22 janvier 2008
11 mai 2005 à 03:09
Bonjour Bestiol je sais pas si tu as trouvé comment faire pour trouver le type en rapport de l'extension. étant donné que tu m'as aidé il y a pas très longtemps, alors je te renvoye l'appareil.

tu déclares

function Shell_FileType(sftFileName: String): ShortString;
var
FileInfo: _SHFileInfoA;
ImageListHandle: THandle;
begin
ImageListHandle := SHGetFileInfo(PChar(sftFileName),
0,
FileInfo,
SizeOf(FileInfo),
SHGFI_TYPENAME);


RESULT := FileInfo.szTypeName;
end;

{$R *.dfm}

et tu fais l'appelle par Shell_FileType(path + fichier);

et voilà tu auras le type voulu.

ActiveX

Je vais dire comme Delphiprog mais en français
Que Delphi soit avec toi
0
Rejoignez-nous