2011-09-15 8 views
23

आमतौर पर, विंडोज के साथ, मैं उपयोगकर्ता के फ़ोल्डर में अपने एप्लिकेशन का डेटा सहेजता हूं (% एपडाटा%)।फ़ायरमॉन्की और इसके क्रॉस-प्लेटफ़ॉर्म के साथ, मुझे अपना एप्लिकेशन डेटा कहां स्टोर करना चाहिए?

इसके लिए, मैं फ़ंक्शन ExpandEnvironmentStrings का उपयोग करता हूं जो कि मुझे आवश्यक फ़ोल्डर प्राप्त करने के लिए विंडोज से जुड़ा हुआ है, और मैं अपने इनफाइल में सबफ़ोल्डर के अंदर स्टोर करता हूं।

क्या इसका प्रबंधन करने के लिए कोई भी सर्वोत्तम अभ्यास है और सभी समर्थित प्लेटफॉर्म (विंडोज 32 बी, 64 बी & मैक) के अनुरूप हो?


मैं सफलतापूर्वक इस तरह का परीक्षण किया:

procedure TfrmMain.SaveSettings; 
var 
    fnINI: TFileName; 
    ini : TIniFile; 
begin 
    fnINI := IncludeTrailingPathDelimiter(GetHomePath) + IncludeTrailingPathDelimiter(APP_NAME) + ChangeFileExt(APP_NAME, '.ini'); 
    if ForceDirectories(ExtractFilePath(fnINI)) then 
    begin 
    ini := TIniFile.Create(fnINI); 
    try 
     ini.WriteString(INI_CONNECTION, INI_IP, edtIP.Text); 
    finally 
     ini.Free; 
    end; 
    end; 
end; 
+0

कृपया अपने प्रश्नों को संपादित करने के बजाय अपने निष्कर्षों को अपने उत्तर में ले जाएं। इस तरह लोग अलग-अलग जवाब और प्रश्न पर वोट दे सकते हैं। – LachlanG

+1

@ लचलन जी: इस मामले में मैं असहमत हूं। व्हाइलर ने एक उदाहरण जोड़ा जो उसने स्वीकार किए गए उत्तर का उपयोग दिखाया। आईएमएचओ को ऐसा करने के लिए एक और जवाब नहीं जोड़ना चाहिए, लेकिन अपने सत्यापन को शामिल करने में सही काम किया कि उसका सत्यापन शामिल है कि उत्तर सही है। – lkessler

+0

@lkessler: क्यों न सिर्फ उत्तर में एक टिप्पणी जोड़ें कि वह सत्यापित है कि यह काम करता है? उन्होंने पहले से ही एक टिप्पणी छोड़ दी है कि वह खुद के लिए जांच करेगा। अपने समाधान कोड को अपने प्रश्न में जोड़ने के बजाय, लिनास के जवाब को संपादित क्यों न करें और वहां कोड रखें। – LachlanG

उत्तर

22

XE2 आज़माया नहीं लेकिन शायद आप SysUtils.GetHomePath इस्तेमाल कर सकते हैं। IOUtils भी देखें जहां आप उपयोगी रिकॉर्ड (TFile, TPath, TDirectory) फ़ाइलों, पथों और निर्देशिकाओं के प्रबंधन के लिए पा सकते हैं। उन्हें विभिन्न प्लेटफार्मों का समर्थन करना चाहिए।

+0

Thx, मैं जांचता हूं और आपको बताता हूं। – Whiler