2012-04-16 18 views
12

मेरे पास एक विंडोज फ़ायरमोनकी ऐप है जो एक्सएम एक्स पर काम करने की कोशिश कर रहे XML डेटा फ़ाइलों को लोड करने के लिए TClientDatasets का उपयोग करता है। डेटा फ़ाइलों को Windows फ़ाइल साझा करने पर संग्रहीत किया जाता है ताकि एकाधिक उपयोगकर्ता कर सकें एक ही डेटा तक पहुंचें (मैं यहां समवर्ती मुद्दों के बारे में चिंतित नहीं हूं)।ओएस एक्स फायरमोनकी ऐप में TClientDataset

मुझे लगता है कि मैक वर्जन सर्वर से फ़ाइलों को लोड नहीं कर रहा है - ऐसा लगता है कि जो भी मैंने TClientDataset.Filename प्रॉपर्टी में सेट किया है, स्थानीय पथ को स्वचालित रूप से प्रीपेन्ड करना प्रतीत होता है।

यदि मैं ऐप शुरू करने से पहले डेटाफ़ाइल को ऐप पैकेज में कॉपी करता हूं, तो यह पूरी तरह से काम करता है, इसलिए मुझे लगा कि मैं फ़ाइलों को कोड में कॉपी करने का प्रयास करूंगा, लेकिन मैं इसे काम करने के लिए नहीं मिल सकता - यह ' सर्वर पर फ़ाइलों को नहीं मिला।

TFile.Exists('smb://<servername>/<path>/Data.xml'); 

तथ्य के बावजूद गलत लगता है मैं इसे खोजक में देख सकता हूं।

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

+3

मुझे लगता है कि इसका TClientDataSet से कोई लेना देना नहीं है। समस्या यह प्रतीत होती है कि आप साझा फ़ाइल को अपने आवेदन के भीतर से नहीं देख सकते हैं। क्या आप जानते हैं कि मैक फ़ाइल नाम केस-संवेदी हैं? –

उत्तर

0

सबसे बड़ी समस्या यह है कि मैक ओएस स्वचालित रूप से आपके नेटवर्क फ़ोल्डर को स्थानीय फ़ोल्डर में मैप नहीं करता है, विंडोज वर्चुअल यह आपके लिए करता है भले ही आप अपने ड्राइव को मैप न करें, इसलिए सभी फाइलें वर्चुअल स्पेस में कॉपी की गई हैं और नेटवर्क फ़ोल्डर को मैप किए बिना आप विंडोज़ पर अपने एप्लिकेशन से सीधे इसका उपयोग क्यों कर सकते हैं।

mkdir/खंड/WinShareName माउंट WinShareName "CIFS: // सर्वर/शेयर"

तो

ताकि समस्या आप कुछ इस तरह का उपयोग कर कुछ फ़ोल्डर में अपना हिस्सा माउंट करने के लिए की आवश्यकता होगी हल करने के लिए उसके बाद आप TFile.Exists ('/ वॉल्यूम/WinShareName/Data.xml') का उपयोग कर सकते हैं; या इसे सीधे clientedataset.loadfromfile से लोड करें।

मैं बस इसका परीक्षण नहीं कर सका क्योंकि मैं अब मैक मशीन के बिना हूं लेकिन यह मुख्य विचार है।

UPDATED ---- आप कैसे here

0

मैं एक ऐसी ही समस्या थी और पर खिड़कियों पक्ष पर एक TCP सर्वर और एक टीसीपी ग्राहक बनाने के द्वारा यह काम किया एक नेटवर्क चालक माउंट करने के बारे में अधिक उदाहरण देख सकते हैं क्लाइंट साइड .. और स्ट्रीम के माध्यम से एक्सएमएल फाइल भेज रहा है .. एक आकर्षण की तरह काम करता है ...

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

  • कोई संबंधित समस्या नहीं^_^