De Environment.SpecialFolder
Le système des dossiers spéciaux sont des dossiers tels que Program Files, programmes, système ou de démarrage, qui contiennent des informations communes. Les dossiers spéciaux sont définis par défaut par le système ou explicitement par l'utilisateur lors de l'installation d'une version de Windows.
La méthode GetFolderPath renvoie les emplacements associés à cette énumération . Les emplacements de ces dossiers peuvent avoir des valeurs différentes sur différents systèmes d'exploitation, l'utilisateur peut modifier certains des emplacements et les emplacements sont localisés.
Il suffit d'utiliser
string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
files = Directory.GetFiles(path, searchPattern);
Dans mon ordinateur, il retourne comme C:\Users\Soner\Documents
Y at-il un moyen d'utiliser Environment.GetFolderPath mais idetifying en quelque sorte le dossier speical correct selon le chemin Je suis actuellement vérification?
Puisque SpecialFolder
est de type enum, vous pouvez itérer leurs valeurs dans une boucle. Voici à quoi ça ressemble
public enum SpecialFolder
{
AdminTools = 0x30,
ApplicationData = 0x1a,
CDBurning = 0x3b,
CommonAdminTools = 0x2f,
CommonApplicationData = 0x23,
CommonDesktopDirectory = 0x19,
CommonDocuments = 0x2e,
CommonMusic = 0x35,
CommonOemLinks = 0x3a,
CommonPictures = 0x36,
CommonProgramFiles = 0x2b,
CommonProgramFilesX86 = 0x2c,
CommonPrograms = 0x17,
CommonStartMenu = 0x16,
CommonStartup = 0x18,
CommonTemplates = 0x2d,
CommonVideos = 0x37,
Cookies = 0x21,
Desktop = 0,
DesktopDirectory = 0x10,
Favorites = 6,
Fonts = 20,
History = 0x22,
InternetCache = 0x20,
LocalApplicationData = 0x1c,
LocalizedResources = 0x39,
MyComputer = 0x11,
MyDocuments = 5,
MyMusic = 13,
MyPictures = 0x27,
MyVideos = 14,
NetworkShortcuts = 0x13,
Personal = 5,
PrinterShortcuts = 0x1b,
ProgramFiles = 0x26,
ProgramFilesX86 = 0x2a,
Programs = 2,
Recent = 8,
Resources = 0x38,
SendTo = 9,
StartMenu = 11,
Startup = 7,
System = 0x25,
SystemX86 = 0x29,
Templates = 0x15,
UserProfile = 40,
Windows = 0x24
}
J'ai édité ma question pour ajouter une question de suivi si vous connaissez la réponse à cette question. –
vous pouvez très bien égaler le chemin que vous avez avec ce 'Environment.GetFolderPath (...)' et si cela correspond, vous pouvez continuer sinon vous pouvez juste appeler 'Continue' dans la construction en boucle. – Saravanan
Je voulais dire quelque chose automatiquement. quelque chose comme (pseudo-code): Dossier SpeicalFolder = Environment.GetSpeicalFolderByFullPath (chemin); –