2016-05-15 3 views
0

J'ai la chaîne de l'extension de fichier. Et je pense que la question est expliciteComment déterminer si un fichier est inconnu Type de fichier C#

Modifier:
- inconnu à l'ordinateur (windows); Un fichier pour lequel aucun programme par défaut n'est installé

+0

Ce n'est pas le cas. Que signifie "inconnu"? Inconnu à qui? Une liste que vous avez? Les fenêtres? Google? –

+0

Que voulez-vous dire par "type de fichier inconnu"? Un fichier pour lequel aucun programme par défaut n'est installé? – ChrisF

+0

La chaîne de "l'extension de fichier". Quelle extension de fichier? –

Répondre

2

Directement sous HKEY_CLASSES_ROOT dans le registre, il existe une série de clés qui sont communes (et pas si courantes).

Dans le premier cas, si la clé d'extension n'existe pas alors c'est vraiment inconnu du système.

Sous chacune de ces touches il peut y avoir d'autres touches:

  • PersistentHandler
  • OpenWithList
  • OpenWIthProgIds
  • ShellEx
  • etc.

en fonction du type de fichier.

La présence d'une (ou de plusieurs) de ces touches vous indiquera si le système peut ouvrir le fichier et quel (s) programme (s) est installé (s).

vous accédez à une clé de Registre via le RegistryKey class

Par exemple, si vous appelez OpenSubKey avec le nom de l'extension, il vous dira si elle existe ou non par le fait que l'appel réussit ou échoue. Si cela réussit, vous pouvez ensuite vérifier les sous-clés pour voir quel programme (le cas échéant) peut ouvrir le fichier.

+0

ok, mais comment puis-je accéder à ce HKEY_CLASSES_ROOT? – vhoyer

+0

Il y a un [classe de registre] entier (https://msdn.microsoft.com/en-us/library/microsoft.win32.registry.getvalue (v = vs.110) .aspx) avec tout ce dont vous avez besoin. Ou si vous aimez coller à SO, voici un [thread] utile (http://stackoverflow.com/questions/18232972/how-to-read-value-of-a-registry-key-c-sharp). –

+0

ouais, bien sûr, merci à tous. – vhoyer