मैं इस समस्या में चल रहे रखने और गूगल समझते हैं क्या मुझे क्या करना चाहते हैं के लिए कभी नहीं लगता है, तो मैंने सोचा कि मैं यह लिखने के होगा.
मैं पिछले हफ्ते या दो में डीबगिंग घटना रिसीवर का एक बहुत कुछ कर रहा हूँ. ईआर एक दस्तावेज़ लाइब्रेरी के खिलाफ परिभाषित किया गया है. दस्तावेज़ लायब्रेरी में अलग-अलग आइटम कस कर उनके पैरेंट फ़ोल्डर्स के लिए से संबंधित हैं. तो, मैं हमेशा के लिए विभिन्न जोड़तोड़ आइटम का फ़ोल्डर हो रही हूँ. डीबगिंग करते समय, मैं एक फ़ोल्डर जिसका आईडी मुझे पता है कि एक विशेष आइटम के लिए का मेटाडेटा अद्यतन करने की जरूरत.
यहाँ एक छोटा सा कंसोल अनुप्रयोग है (खेत में सर्वर पर चलाने के लिए डिज़ाइन किया गया) कि दो तर्क लेता है: एक आइटम और एक मूल्य की ID किसी फ़ील्ड के लिए असाइन करने के लिए, "अनुमोदन स्थिति". यह मुश्किल सामान का एक बहुत कोड और कोई त्रुटि जाँच कर रहा है.
ऊपर एक हार्ड कोडित साइट कोड दिखता है, एक हार्ड कोडित दस्तावेज़ लायब्रेरी हो जाता है और तब इंगित आइटम पाता है. यह तो उस आइटम का पैरेंट फ़ोल्डर पाता है और स्थिति मान असाइन करता है.
मेरे लिए महत्वपूर्ण सबक यहाँ कि SPItem फ़ोल्डर के लिए आप पहुँच प्राप्त नहीं करता है. आप SPListItem.File का उपयोग करने की आवश्यकता.
अगर किसी को आलोचना की पेशकश या किसी आइटम का फ़ोल्डर प्राप्त करने के लिए एक बेहतर तरीका का सुझाव के लिए परवाह, कृपया एक टिप्पणी छोड़ दो.
<कोड>
का उपयोग कर प्रणाली; का उपयोग कर System.Collections.Generic; का उपयोग कर System.Text; का उपयोग कर Microsoft.SharePoint; का उपयोग कर System.Collections; नामस्थान Conchango { /// <सारांश> /// </सारांश> वर्ग ManualFolderUpdate { स्थैतिक शून्य मेन(स्ट्रिंग[] args) { स्ट्रिंग msh = "ManualFolderUpdate (v 1.0): "; // msh = "संदेश शीर्ष लेख" कंसोल.WriteLine(msh + "शुरू. मैं 08/04/08 पर अंतिम बार संशोधित किया गया।"); स्ट्रिंग यूआरएल = http://localhost/xyzzy; का उपयोग कर (SPSite oSPSite = नई SPSite(यूआरएल)) { का उपयोग कर (SPWeb oSPWeb = oSPSite.OpenWeb()) { SPList docLib = oSPWeb.Lists["दस्तावेज़"]; कंसोल.WriteLine(msh + "दस्तावेज़ लायब्रेरी के पास।"); कंसोल.WriteLine(msh + "डॉक्टर लिब आइटम गणना: [" + docLib.ItemCount + "]."); int FolderID = 0; स्ट्रिंग NewStatus = "xyzzy"; FolderID सिस्टम =.कनवर्ट करें.ToInt32(args[0].ToString()); कंसोल.WriteLine("फ़ोल्डर के लिए आइटम की मांग: [" + FolderID + "]."); SPListItem li = docLib.GetItemById(FolderID); SPFolder thisItemFolder = ली।File.ParentFolder; कंसोल.WriteLine(msh + "पैरेंट फ़ोल्डर मिल गया।"); NewStatus = args[1].ToString(); कंसोल.WriteLine("स्थिति के लिए सेट करना [" + NewStatus + "]."); कंसोल.WriteLine("प्रेस को अद्यतन या CTRL-C को निरस्त करने के लिए प्रतिबद्ध करने के लिए वापसी।"); कंसोल.ReadLine(); thisItemFolder.Item["अनुमोदन स्थिति"] = NewStatus; thisItemFolder.Item.Update(); कंसोल.WriteLine(msh + "समाप्त हो गया फ़ोल्डर को अद्यतन. बाहर निकल रहा।"); } // SPWeb का उपयोग करना } // SPSite का उपयोग करना कंसोल.WriteLine(msh + "समाप्त हो गया।"); } // मेन } // क्लास foldersync } // नामस्थान
</कोड>
</अंत>
मेरे ब्लॉग के लिए सदस्यता लें.