Da Environment.SpecialFolder
Il sistema di cartelle speciali sono cartelle come Program Files, Programmi, sistema, o di avvio, che contengono informazioni comuni. Le cartelle speciali sono impostate di default dal sistema, o esplicitamente dall'utente , quando si installa una versione di Windows.
Il metodo GetFolderPath restituisce le posizioni associate a questo enumerazione . Le posizioni di queste cartelle possono avere valori diversi su diversi sistemi operativi, l'utente può modificare alcune delle posizioni e le posizioni sono localizzate.
Basta usare
string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
files = Directory.GetFiles(path, searchPattern);
nel mio computer, restituisce come C:\Users\Soner\Documents
C'è un modo per utilizzare Environment.GetFolderPath ma in qualche modo idetifying cartella speical corretto in base al percorso Sono attualmente in controllo ?
Dal SpecialFolder
è tipo enum, è possibile scorrere i loro valori in un ciclo. Ecco come sembra;
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
}
ho modificato la mia domanda per aggiungere una domanda di follow-up se si può conoscere la risposta a quello. –
si può benissimo equiparare il percorso che avete con questa 'Environment.GetFolderPath (...)' e se abbinato, è possibile continuare oppure semplicemente si può chiamare 'CONTINUE nel costrutto iterativo. – Saravanan
Intendevo qualcosa automaticamente. qualcosa di simile (pseudo codice): cartella SpeicalFolder = Environment.GetSpeicalFolderByFullPath (percorso); –