2009-10-17 4 views
0

En Asp classique nous avons utilisé la propriété File.Type pour obtenir le nom convivial associé à un type de fichier du registre (par exemple "Document texte" pour ".txt"). La classe FileInfo qui remplace généralement l'ancien objet COM ne réplique pas cette fonctionnalité et jusqu'à présent je n'ai pas beaucoup de succès dans ma recherche d'un remplacement.Qu'est-ce que le remplacement .Net de la propriété File.Type FileSystemObject?

+0

duplication possible de http://stackoverflow.com/questions/1437382/get-file-type-in-net – Helen

+0

Je pense qu'il a été répondu ici: http://stackoverflow.com/questions/1437382/get- file-type-in-c –

Répondre

1

Je ne suis pas au courant d'une méthode dans la BCL, mais vous pouvez facilement le lire à partir du Registre:

using System; 
using Microsoft.Win32; 

class Program 
{ 
    static void Main(string[] args) 
    { 

     string extension = ".txt"; 
     string nicename = ""; 

     using (RegistryKey key = Registry.ClassesRoot.OpenSubKey(extension)) 
     { 
      if (key != null) 
      { 
       string filetype = key.GetValue(null) as string; 
       using (RegistryKey keyType = Registry.ClassesRoot.OpenSubKey(filetype)) 
       { 
        if (keyType != null) 
        { 
         nicename = keyType.GetValue(null) as string; 
        } 
       } 
      } 
     } 
     Console.WriteLine(nicename); 

    } 
} 

Cependant, la méthode utilisée dans le link fourni par Vladimir est préférable comme utilise une interface API.

+0

J'espérais éviter de lire les valeurs manuellement mais vu les options que je pourrais choisir –

Questions connexes