2009-08-07 12 views
21

में अस्थायी फ़ाइलों को बचाने के लिए कहां है मैं एक आवेदन है कि विंडोज़सबसे अच्छी जगह विंडोज

कहाँ अस्थायी फ़ाइलों को बचाने के लिए सही जगह है के अधीन ही लिख व्यस्त हूँ?

+3

अस्थायी निर्देशिका? –

उत्तर

33

आप नेट का उपयोग कर रहे हैं, तो Path.GetTempPath() का इस्तेमाल करें। यह गारंटी देगा कि आप उस उपयोगकर्ता को असाइन की गई अस्थायी निर्देशिका का उपयोग करें जो आपके एप्लिकेशन को चलाता है, भले ही इसे संग्रहीत किया जाए।

  • ~ \ अस्थायी
  • ~ \ Windows \ अस्थायी
  • ~ \ उपयोगकर्ता \ उपयोगकर्ता नाम \ AppData:

    आप फाइल सिस्टम ब्राउज़ हैं, तो आप कई "अस्थायी" निर्देशिका देखते हैं कि देखेंगे \ Local \ अस्थायी

... और कई और अधिक। इनमें से कुछ पथ ओएस-निर्भर हैं, और कुछ विंडोज स्वादों पर मौजूद नहीं होंगे। तो, अपने आप को कुछ समय और परेशानी बचाएं, और .NET ढांचे को पता करें कि "temp" पथ कहां स्थित है।

+1

वह - या अलग भंडारण का उपयोग करें, जिस पर उपयोगकर्ता हमेशा लिखने की गारंटी रखने की गारंटी देता है! –

+3

अभी तक बेहतर है, बस Path.GetTempFileName() का उपयोग करें जो फ़ाइल नाम भी उत्पन्न करेगा, और इसे पूरा पथ (उपयुक्त अस्थायी फ़ोल्डर में) वापस कर देगा। –

6

अस्थायी निर्देशिका में?

उपयोग GetTempPath या में एक बैच फ़ाइल% TEMP%

4

GetTempPath एपीआई, या अपने प्रोग्रामिंग वातावरण के लिए बराबर का उपयोग करें।

4

C: \ अस्थायी नहीं एक अच्छा विकल्प है।

आप इस तरह नेट उपयोग कोड का उपयोग कर रहे हैं:

  string baseFolder = System.Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); 

     string cfgFolder = Path.Combine(baseFolder, "MyAppName"); 


     try 
     { 
      if (!Directory.Exists(cfgFolder)) 
      { 
       Directory.CreateDirectory(cfgFolder); 
      } 
     } 
     catch { } // If no access, not much we can do. 

ऐप्लिकेशन डेटा भी मध्यम अवधि के भंडारण, या डेटा के क्षणिक भंडारण के लिए Path.GetTempPath() के लिए एक जगह पाने के लिए।

+0

'c: \ Temp' का उपयोग करना क्यों अच्छा विचार नहीं है? मैं आपके बिंदु से असहमत नहीं हूं, मैं आपके तर्क के अनुसार उत्सुक हूं =) –

+2

सी: \ वास्तव में एक छोटा सा विभाजन हो सकता है, और कई मामलों में, सामान्य (गैर-व्यवस्थापक) उपयोगकर्ताओं के पास लिखने की अनुमति नहीं होती है सी: \ इसलिए वे सी: \ temp –

+0

नहीं बना सकते हैं इसके अलावा, यह कहने के लिए कि C: \ temp गैर-अंग्रेज़ी विंडोज़ पर भी मौजूद है? –

10

उपयोग GetTempPath और और संभवतः GetTempFileName निर्धारित करने के लिए जहां अपने अस्थायी फ़ाइलों को डाल करने के लिए। फाइलों के लिए एक अस्थायी स्थान प्राप्त करने के लिए यह सबसे भरोसेमंद, enduser- अनुकूल, और भविष्य के सबूत तरीका है।

string tempFolder = System.IO.Path.GetTempPath(); 

आप उदाहरण के लिए सी # में उचित फ़ोल्डर वापस आ जाएगी:

3

यह भाषा का प्रयोग कर रहे पर निर्भर करता है।

या, वातावरण चर अस्थायी या TMP अगर आप करना चाहिए।

-3

सी: \ दस्तावेज़ और सेटिंग्स \ उपयोगकर्ता नाम \ अनुप्रयोग डेटा \ पृथक स्टोरेज

+16

हां - लेकिन कृपया प्रलेखित पृथक संग्रहण API का उपयोग करें और इस पथ को हार्डकोड न करें!विंडोज के जर्मन संस्करण वाले सिस्टम पर, यह उदाहरण होगा "सी: \ Dokumente \ ....." और यदि आप इस पथ को हार्डकोड करते हैं, तो आपका ऐप टूट जाएगा। फोल्क: अगर कुछ करने के लिए एपीआई हैं, ** ** उन्हें उपयोग करें !! –

संबंधित मुद्दे

 संबंधित मुद्दे