एनवायरनमेंट.गेटफ़ोल्डरपथ (… कॉमन एप्लायडेशनडाटा) अभी भी Vista पर “C: \ Documents and Settings \” लौटा रहा है


84

जैसा कि मैं इसे समझता हूं, आप इस Environment.GetFolderPathविधि का उपयोग करने वाले हैं ताकि आपके पास ओएस स्वतंत्र कोड हो ...

Windows XP का उपयोग करता है C:\Documents and Settings\। Windows Vista का उपयोग करता है C:\ProgramDataऔर C:\Users।

मैं विंडोज विस्टा कंप्यूटर पर नीचे दिए गए कोड का उपयोग कर रहा हूं और यह एक C:\Documents and Settings\निर्देशिका को वापस कर रहा है C:\ProgramDataजैसे कि यह चाहिए ... कोई विचार?

    string commonAppData = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
    try
    {
        File.CreateText(
            Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) +
            "\\mycompany\\uid");
        log.Debug("Created file successfully");
    }
    catch (Exception ex)
    {
        log.Error("Unable to create the uid file: ", ex);
    }

2
क्या विस्टा इंस्टॉलेशन को XP से अपडेट किया गया है?
— डर्क वोल्मार

नहीं, यह निश्चित रूप से विस्टा था जब इसे स्टोर से घर लाया गया था ... मुझे लगता है कि यह संभव है कि इसे बेस्टब्यू या कुछ द्वारा "उन्नत" किया गया था (संभावना नहीं लगती है)। c: \ दस्तावेज और सेटिंग्स बिल्कुल भी मौजूद नहीं है अगर वह आपको कुछ भी बताता है।
— ब्लाक 3

आप पथ में "\\ mycompany \\ uid" को कैसे हल करते हैं? मैं इस सटीक पथ (कंपनी और यूआई के साथ) को उत्पन्न करना चाहता हूं। क्या मुझे विधानसभा से इस डेटा को मैन्युअल रूप से जोड़ना होगा?
— जोश जी

जवाबों:


163

मेरे इंस्टॉलर ने एक log.txt फ़ाइल की प्रतिलिपि बनाई जो कि XP ​​कंप्यूटर पर उत्पन्न हुई थी। मैं सोच रहा था कि लॉग फ़ाइल यह विस्टा पर उत्पन्न हुई थी। एक बार जब मैंने अपने लॉग 4नेट कॉन्फ़िगरेशन को "विस्टा कम्पेटिबल" होने के लिए तय किया। पर्यावरण .GetFolderPath अपेक्षित परिणाम लौटा रहा था। इसलिए, मैं इस पोस्ट को बंद कर रहा हूं।

निम्नलिखित विशेष फ़ोल्डर पथ संदर्भ उपयोगी हो सकता है:

विंडोज सर्वर 2003 पर आउटपुट:

SpecialFolder.ApplicationData: C: \ Documents and Settings \ blake \ Application Data
SpecialFolder.CommonApplicationData: C: \ Documents and Settings \ All Users \ Application Data
SpecialFolder.ProgramFiles: C: \ Program Files
SpecialFolder.CommonProgramFiles: C: \ Program Files \ Common फाइलें
SpecialFolder.DesktopDirectory: C: \ Documents and Settings \ blake \ Desktop
SpecialFolder.LocalApplicationData: C: \ Documents and Settings \ blake \ Local Settings \ Application Data
SpecialFolder.MyDocuments: C: \ Documents and Settings \ blake \ My Documents
SpecialFolder.System: C: \ WINDOWS \ system32`

विस्टा पर आउटपुट:

SpecialFolder.ApplicationData: C: \ Users \ blake \ AppData \ Roaming
SpecialFolder.CommonApplicationData: C: \ ProgramData
SpecialFolder.ProgramFiles: C: \ Program Files
SpecialFolder.CommonProgramFiles: C: \ Program Files \ Common फाइलें
SpecialFolder.DesktopDirectory: C: \ Users \ blake \ Desktop
SpecialFolder.LocalApplicationData: C: \ Users \ blake \ AppData \ Local
SpecialFolder.MyDocuments: C: \ Users \ blake \ Documents
SpecialFolder.System: C: \ Windows \ system32

Log4net कॉन्फ़िगरेशन का पर्यावरण के साथ कुछ भी क्यों होगा। GetFolderPath? जैसा कि "किसी भी विचार?" के लिए, हाँ, आपको एक साधारण उपयोगकर्ता के रूप में पहला परिणाम मिलता है, और दूसरा परिणाम व्यवस्थापक के रूप में चल रहा है, उदाहरण के लिए एक उन्नत इंस्टॉलर या सेवा चलाते समय।
— बेंट ट्रानबर्ग

1
इसके अलावा, मुझे लगता है कि इन सभी सूचियों को पढ़ने वाले newbies को पता होना चाहिए कि ये जरूरी नहीं कि एक OS पर तय किए गए रास्ते हों, बल्कि "आपकी" मशीन पर बहुत कुछ हो सकता है। कभी हार्डकोड न करें - इसके बजाय GetFolderPath का उपयोग करें, या आपको एक दिन खेद होगा। ओह, और प्लस ऑपरेटर के बजाय Path.Combine का उपयोग करें।
— बेंट ट्रानबर्ग

wondows10 पर, Environment.SpecialFolder.CommonApplicationDataकिसी कारण के लिए रिटर्न CommonApplicationData। और इसलिए एप्लिकेशन को स्वयं पथ में फ़ोल्डर पैदा कर रही है
— mrid

@ मृदु Environment.SpecialFolder.CommonApplicationDataएक एनम है; आपको Environment.GetFolderPath()पथ को वापस करने के लिए कॉल करने की आवश्यकता है , उदाहरण के लिए Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)।
— गैरी पेंडलेबरी

36

उबंटू 9.10 पर उत्पादन -> उबुन्टु 12.04 मोनो 2.10.8.1 के साथ:

SpecialFolder.ApplicationData: /home/$USER/.config
SpecialFolder.CommonApplicationData: /usr/share
SpecialFolder.ProgramFiles: 
SpecialFolder.DesktopDirectory: /home/$USER/Desktop
SpecialFolder.LocalApplicationData: /home/$USER/.local/share
SpecialFolder.MyDocuments: /home/$USER
SpecialFolder.System: 

SpecialFolder.Personal: /home/$USER

मोनो 4.2.1 के साथ उबंटू 16.04 पर आउटपुट

SpecialFolder.ApplicationData: /home/$USER/.config
SpecialFolder.CommonApplicationData: /usr/share
SpecialFolder.ProgramFiles:
SpecialFolder.DesktopDirectory: /home/$USER/Desktop
SpecialFolder.LocalApplicationData: /home/$USER/.local/share
SpecialFolder.MyDocuments: /home/$USER
SpecialFolder.Desktop: /home/$USER/Desktop
SpecialFolder.Personal: /home/$USER

SpecialFolder.System: 
SpecialFolder.Programs: 
SpecialFolder.Favorites: 
SpecialFolder.Startup: 
SpecialFolder.Recent: 
SpecialFolder.SendTo: 
SpecialFolder.StartMenu: 
SpecialFolder.MyMusic: /home/$USER/Music
SpecialFolder.MyVideos: /home/$USER/Videos
SpecialFolder.MyComputer: 
SpecialFolder.NetworkShortcuts: 
SpecialFolder.Fonts: /home/$USER/.fonts
SpecialFolder.Templates: /home/$USER/Templates
SpecialFolder.CommonStartMenu: 
SpecialFolder.CommonPrograms: 
SpecialFolder.CommonStartup: 
SpecialFolder.CommonDesktopDirectory: 
SpecialFolder.PrinterShortcuts: 
SpecialFolder.InternetCache: 
SpecialFolder.Cookies: 
SpecialFolder.History: 
SpecialFolder.Windows: 
SpecialFolder.MyPictures: /home/$USER/Pictures
SpecialFolder.UserProfile: /home/$USER
SpecialFolder.SystemX86: 
SpecialFolder.ProgramFilesX86: 
SpecialFolder.CommonProgramFiles: 
SpecialFolder.CommonProgramFilesX86: 
SpecialFolder.CommonTemplates: /usr/share/templates
SpecialFolder.CommonDocuments: 
SpecialFolder.CommonAdminTools: 
SpecialFolder.AdminTools: 
SpecialFolder.CommonMusic: 
SpecialFolder.CommonPictures: 
SpecialFolder.CommonVideos: 
SpecialFolder.Resources: 
SpecialFolder.LocalizedResources: 
SpecialFolder.CommonOemLinks: 
SpecialFolder.CDBurning: 

जहां $ USER वर्तमान उपयोगकर्ता है

डॉटनेट कोर (3.0.100) का उपयोग करके उबंटू 16.04 पर आउटपुट

ApplicationData: /home/$USER/.config
CommonApplicationData: /usr/share
ProgramFiles: 
DesktopDirectory: /home/$USER/Desktop
LocalApplicationData: /home/$USER/.local/share
MyDocuments: /home/$USER
System: 
Personal: /home/$USER

Xamarin 7.2 का उपयोग करके एंड्रॉइड 6 पर आउटपुट

Environment.SpecialFolder.ApplicationData: /data/user/0/$APPNAME/files/.config
Environment.SpecialFolder.CommonApplicationData: /usr/share
Environment.SpecialFolder.ProgramFiles: 
Environment.SpecialFolder.DesktopDirectory: /data/user/0/$APPNAME/files/Desktop
Environment.SpecialFolder.LocalApplicationData: /data/user/0/$APPNAME/files/.local/share
Environment.SpecialFolder.MyDocuments: /data/user/0/$APPNAME/files
Environment.SpecialFolder.Desktop: /data/user/0/$APPNAME/files/Desktop
Environment.SpecialFolder.Personal: /data/user/0/$APPNAME/files

Environment.SpecialFolder.Startup: 
Environment.SpecialFolder.Recent: 
Environment.SpecialFolder.SendTo: 
Environment.SpecialFolder.StartMenu: 
Environment.SpecialFolder.MyMusic: /data/user/0/$APPNAME/files/Music
Environment.SpecialFolder.MyVideos: /data/user/0/$APPNAME/files/Videos
Environment.SpecialFolder.MyComputer: 
Environment.SpecialFolder.NetworkShortcuts: 
Environment.SpecialFolder.Fonts: /data/user/0/$APPNAME/files/.fonts
Environment.SpecialFolder.Templates: /data/user/0/$APPNAME/files/Templates
Environment.SpecialFolder.CommonStartMenu: 
Environment.SpecialFolder.CommonPrograms: 
Environment.SpecialFolder.CommonStartup: 
Environment.SpecialFolder.CommonDesktopDirectory: 
Environment.SpecialFolder.PrinterShortcuts: 
Environment.SpecialFolder.InternetCache: 
Environment.SpecialFolder.Cookies: 
Environment.SpecialFolder.History: 
Environment.SpecialFolder.Windows: 
Environment.SpecialFolder.MyPictures: /data/user/0/$APPNAME/files/Pictures
Environment.SpecialFolder.UserProfile: /data/user/0/$APPNAME/files
Environment.SpecialFolder.SystemX86: 
Environment.SpecialFolder.ProgramFilesX86: 
Environment.SpecialFolder.CommonProgramFiles: 
Environment.SpecialFolder.CommonProgramFilesX86: 
Environment.SpecialFolder.CommonTemplates: /usr/share/templates
Environment.SpecialFolder.CommonDocuments: 
Environment.SpecialFolder.CommonAdminTools: 
Environment.SpecialFolder.AdminTools: 
Environment.SpecialFolder.CommonMusic: 
Environment.SpecialFolder.CommonPictures: 
Environment.SpecialFolder.CommonVideos: 
Environment.SpecialFolder.Resources: 
Environment.SpecialFolder.LocalizedResources: 
Environment.SpecialFolder.CommonOemLinks: 
Environment.SpecialFolder.CDBurning: 

जहाँ $ APPNAME आपके Xamarin एप्लिकेशन का नाम है (उदाहरण। MyApp.Droid)

आईओएस सिम्युलेटर 10.3 पर आउटपुट Xamarin 7.2 का उपयोग कर रहा है

ApplicationData: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents/.config
CommonApplicationData: /usr/share
ProgramFiles: /Applications
DesktopDirectory: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents/Desktop
LocalApplicationData: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents
MyDocuments: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents
Desktop: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents/Desktop
MyDocuments: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents
Startup: 
Recent: 
SendTo: 
StartMenu: 
MyMusic: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents/Music
MyVideos: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents/Videos
MyComputer: 
NetworkShortcuts: 
Fonts: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents/.fonts
Templates: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents/Templates
CommonStartMenu: 
CommonPrograms: 
CommonStartup: 
CommonDesktopDirectory: 
PrinterShortcuts: 
InternetCache: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Library/Caches
Cookies: 
History: 
Windows: 
MyPictures: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents/Pictures
UserProfile: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID
SystemX86: 
ProgramFilesX86: 
CommonProgramFiles: 
CommonProgramFilesX86: 
CommonTemplates: /usr/share/templates
CommonDocuments: 
CommonAdminTools: 
AdminTools: 
CommonMusic: 
CommonPictures: 
CommonVideos: 
Resources: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Library
LocalizedResources: 
CommonOemLinks: 
CDBurning: 

जहां $ DEVICEGUID सिम्युलेटर GUID है (चयनित सिम्युलेटर के आधार पर)

Xadarin 7.2 का उपयोग करके ipad 10.3 पर आउटपुट

SpecialFolder.MyDocuments: /var/mobile/Containers/Data/Application/$APPLICATIONGUID/Documents

Xadarin 16.4 का उपयोग कर ipad 13.3 पर आउटपुट

SpecialFolder.MyDocuments: /var/mobile/Containers/Data/Application/$APPLICATIONGUID/Documents
SpecialFolder.UserProfile: /private/var/mobile/Containers/Data/Application/$APPLICATIONGUID/Documents

.Net कोर 3.1 का उपयोग करके विंडोज़ 10 पर आउटपुट

SpecialFolder.MyDocuments: C:\Users\$USER\Documents

.Net core 3.1 का उपयोग करके उबंटू 18.04 पर आउटपुट

SpecialFolder.MyDocuments: /home/$USER

MacOS कैटालिना पर आउटपुट .net कोर 3.1 का उपयोग कर

SpecialFolder.MyDocuments: /Users/$USER

26

विंडोज 10 पर आउटपुट

Fonts: C:\Windows\Fonts
CommonStartMenu: C:\ProgramData\Microsoft\Windows\Start Menu
CommonPrograms: C:\ProgramData\Microsoft\Windows\Start Menu\Programs
CommonStartup: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
CommonDesktopDirectory: C:\Users\Public\Desktop
CommonApplicationData: C:\ProgramData
Windows: C:\Windows
System: C:\Windows\system32
ProgramFiles: C:\Program Files (x86)
SystemX86: C:\Windows\SysWOW64
ProgramFilesX86: C:\Program Files (x86)
CommonProgramFiles: C:\Program Files (x86)\Common Files
CommonProgramFilesX86: C:\Program Files (x86)\Common Files
CommonTemplates: C:\ProgramData\Microsoft\Windows\Templates
CommonDocuments: C:\Users\Public\Documents
CommonAdminTools: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools
CommonMusic: C:\Users\Public\Music
CommonPictures: C:\Users\Public\Pictures
CommonVideos: C:\Users\Public\Videos
Resources: C:\Windows\resources
LocalizedResources:
CommonOemLinks:

कोड स्निपेट यदि आप स्वयं लॉग इन करना चाहते हैं

foreach(Environment.SpecialFolder f in Enum.GetValues(typeof(Environment.SpecialFolder)))
{
    string commonAppData = Environment.GetFolderPath(f);
    Console.WriteLine("{0}: {1}", f, commonAppData);
}
Console.ReadLine();

क्या ये मूल्य विंडोज 10 एस के साथ मान्य होंगे?
— एंड्रयू

12

विंडोज 7 पर आउटपुट (64-बिट)

SpecialFolder.CommonApplicationData: C:\ProgramData 
SpecialFolder.CommonDesktopDirectory: C:\Users\Public\Desktop
SpecialFolder.CommonStartMenu: C:\ProgramData\Microsoft\Windows\Start Menu
SpecialFolder.CommonPrograms: C:\ProgramData\Microsoft\Windows\Start Menu\Programs
SpecialFolder.CommonProgramFiles: C:\Program Files\Common Files
SpecialFolder.CommonProgramFilesX86: C:\Program Files (x86)\Common Files
SpecialFolder.CommonStartup: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
SpecialFolder.ProgramFiles: C:\Program Files
SpecialFolder.ProgramFilesX86: C:\Program Files (x86)
SpecialFolder.System: C:\Windows\system32
SpecialFolder.SystemX86: C:\Windows\SysWOW64

विंडोज एक्सपी पर आउटपुट

SpecialFolder.CommonApplicationData: C:\Documents and Settings\All Users\Application Data
SpecialFolder.CommonDesktopDirectory: C:\Documents and Settings\All Users\Desktop
SpecialFolder.CommonPrograms: C:\Documents and Settings\All Users\Start Menu\Programs
SpecialFolder.CommonProgramFiles: C:\Program Files\Common Files
SpecialFolder.CommonProgramFilesX86:
SpecialFolder.CommonStartMenu: C:\Documents and Settings\All Users\Start Menu
SpecialFolder.CommonStartup: C:\Documents and Settings\All Users\Start Menu\Programs\Startup
SpecialFolder.ProgramFiles: C:\Program Files
SpecialFolder.ProgramFilesX86:
SpecialFolder.System: C:\WINDOWS\system32
SpecialFolder.SystemX86: C:\WINDOWS\system32

0

मुझे macOS की लिस्टिंग की तलाश थी लेकिन कुछ नहीं मिला, शायद इससे किसी को मदद मिले।

Net5.0 का उपयोग करते हुए macOS Catalina (10.15.7) पर आउटपुट

# SpecialFolders (Only with value)
SpecialFolder.ApplicationData: /Users/$USER/.config
SpecialFolder.CommonApplicationData: /usr/share
SpecialFolder.Desktop: /Users/$USER/Desktop
SpecialFolder.DesktopDirectory: /Users/$USER/Desktop
SpecialFolder.Favorites: /Users/$USER/Library/Favorites
SpecialFolder.Fonts: /Users/$USER/Library/Fonts
SpecialFolder.InternetCache: /Users/$USER/Library/Caches
SpecialFolder.LocalApplicationData: /Users/$USER/.local/share
SpecialFolder.MyDocuments: /Users/$USER
SpecialFolder.MyMusic: /Users/$USER/Music
SpecialFolder.MyPictures: /Users/$USER/Pictures
SpecialFolder.ProgramFiles: /Applications
SpecialFolder.System: /System
SpecialFolder.UserProfile: /Users/$USER

# SpecialFolders (All)
SpecialFolder.AdminTools: 
SpecialFolder.ApplicationData: /Users/$USER/.config
SpecialFolder.CDBurning: 
SpecialFolder.CommonAdminTools: 
SpecialFolder.CommonApplicationData: /usr/share
SpecialFolder.CommonDesktopDirectory: 
SpecialFolder.CommonDocuments: 
SpecialFolder.CommonMusic: 
SpecialFolder.CommonOemLinks: 
SpecialFolder.CommonPictures: 
SpecialFolder.CommonProgramFiles: 
SpecialFolder.CommonProgramFilesX86: 
SpecialFolder.CommonPrograms: 
SpecialFolder.CommonStartMenu: 
SpecialFolder.CommonStartup: 
SpecialFolder.CommonTemplates: 
SpecialFolder.CommonVideos: 
SpecialFolder.Cookies: 
SpecialFolder.Desktop: /Users/$USER/Desktop
SpecialFolder.DesktopDirectory: /Users/$USER/Desktop
SpecialFolder.Favorites: /Users/$USER/Library/Favorites
SpecialFolder.Fonts: /Users/$USER/Library/Fonts
SpecialFolder.History: 
SpecialFolder.InternetCache: /Users/$USER/Library/Caches
SpecialFolder.LocalApplicationData: /Users/$USER/.local/share
SpecialFolder.LocalizedResources: 
SpecialFolder.MyComputer: 
SpecialFolder.MyDocuments: /Users/$USER
SpecialFolder.MyMusic: /Users/$USER/Music
SpecialFolder.MyPictures: /Users/$USER/Pictures
SpecialFolder.MyVideos: 
SpecialFolder.NetworkShortcuts: 
SpecialFolder.PrinterShortcuts: 
SpecialFolder.ProgramFiles: /Applications
SpecialFolder.ProgramFilesX86: 
SpecialFolder.Programs: 
SpecialFolder.Recent: 
SpecialFolder.Resources: 
SpecialFolder.SendTo: 
SpecialFolder.StartMenu: 
SpecialFolder.Startup: 
SpecialFolder.System: /System
SpecialFolder.SystemX86: 
SpecialFolder.Templates: 
SpecialFolder.UserProfile: /Users/$USER
SpecialFolder.Windows: 

मैंने $ USER के साथ अपना उपयोगकर्ता नाम बदल दिया है।

कोड स्निपेट पोगोसम से ।

foreach(Environment.SpecialFolder f in Enum.GetValues(typeof(Environment.SpecialFolder)))
{
    string commonAppData = Environment.GetFolderPath(f);
    Console.WriteLine("{0}: {1}", f, commonAppData);
}
Console.ReadLine();
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.