के साथ पूर्ण निर्देशिका सामग्री प्राप्त करें मुझे एक सूची के रूप में एक फ़ोल्डर और इसके सबफ़ोल्डर की संपूर्ण (दृश्यमान) सामग्री प्राप्त करने की आवश्यकता है। क्या यह संभव है?ऐप्पलस्क्रिप्ट
उत्तर
मुझे यकीन है कि एक शेल कमांड है जो इसे तेजी से कर सकता है, लेकिन यहां शुद्ध एप्पलस्क्रिप्ट में एक तरीका है जो आपको स्वरूपित करने पर पूर्ण नियंत्रण देता है कि आप कौन सी जानकारी प्रदर्शित करना चाहते हैं।
property kFileList : {}
tell application "Finder"
set source_folder to choose folder with prompt "Please select directory."
my createList(source_folder)
end tell
on createList(item_list)
set the the_items to list folder item_list without invisibles
set item_list to item_list as string
repeat with i from 1 to number of items in the the_items
set the_item to item i of the the_items
set the_item to (item_list & the_item) as alias
set this_info to info for the_item
set file_name to name of this_info
set end of kFileList to file_name
if folder of this_info is true then
my createList(the_item)
end if
end repeat
end createList
एक तरफ नोट पर, एक फ़ाइल फ़ाइल अनुप्रयोग भी हैं जो एप्पलस्क्रिप्ट से तेज़ी से ऐसा कर सकते हैं।
अद्यतन: इस चर्चा के परिणामस्वरूप, यह फ़ंक्शन फिर से है, लेकिन इस बार अद्यतन API का उपयोग कर रहा है। यह शायद इस्तेमाल कर सकते हैं सकता है कुछ को साफ करने के लिए, लेकिन यह handily पर्याप्त मेरी डेस्कटॉप सूचीबद्ध काम करता है (और यह मेरे लिए एक गहरी, गहरी फ़ोल्डर है):
property kFileList : {}
tell application "Finder"
set source_folder to choose folder with prompt "Please select directory."
my createList(source_folder)
end tell
return kFileList
on createList(mSource_folder)
set item_list to ""
tell application "System Events"
set item_list to get the name of every disk item of mSource_folder
end tell
set item_count to (get count of items in item_list)
repeat with i from 1 to item_count
set the_properties to ""
set the_item to item i of the item_list
set the_item to ((mSource_folder & the_item) as string) as alias
tell application "System Events"
set file_info to get info for the_item
end tell
if visible of file_info is true then
set file_name to displayed name of file_info
set end of kFileList to file_name
if folder of file_info is true then
my createList(the_item)
end if
end if
end repeat
end createList
मैं गलत मेलिंग सूची की सदस्यता ली जानी चाहिए, अन्यथा इन क्योंकि एक लापता एपीआई परिवर्तन लागू किए गए थे और मैं कभी नहीं उनके बारे में सुना। मैंने अपनी पहली पेशकश की विधि को दर्जनों परियोजनाओं में काफी हद तक उपयोग किया है क्योंकि यह मूल रूप से ऐप्पल द्वारा प्रदान किया गया कोड था, और इसका उपयोग करके त्रुटियों की पूरी कमी (यहां तक कि इस लेखन के समय भी) ने मुझे कुछ भी अपडेट करने की आवश्यकता नहीं दी ।
टर्नबाउट उचित खेल है, और एमएमसीग्रिल के लिए स्पिटफुल डाउनवोट के लिए मेरी माफ़ी है, और मैं इसे एक अपवर्त के साथ बदल रहा हूं। बस स्पष्ट होने के लिए, मैंने कभी सोचा नहीं कि mmcgrail द्वारा दिया गया जवाब गलत था। यह एक महान एक-लाइन सुविधा विधि है, लेकिन मैं पहले से ही मेरी टिप्पणियों से दूर रह गया हूं। बल्कि, यह उनका नीचे वोट था और इसके संदर्भ में मैंने अपराध किया था। अंत में, यह सिर्फ कोड है, और मुझे लगता है कि हम सभी एक ही कारण के लिए यहां हैं: हम जो भी करते हैं, उसका बेहतर तरीका ढूंढने के लिए। ऐसा लगता है कि अब मेरे पास लागू करने के लिए मेरे कुछ अपडेट हैं।
चीयर्स
जो आवश्यकतानुसार अधिक काम है। मैं जानता हूँ कि यह एक पुरानी पोस्ट है, लेकिन मैं तुम दोनों को देखने के लिए कि यह कैसे आसान
tell application "Finder"
set file_list to entire contents of (choose folder with prompt "Please select directory.")
end tell
हो सकता है टिप्पणी के कारण यदि आप फ़ाइल नामों की सूची तो आप इस
tell application "Finder"
set file_list to name of every file of entire contents of (choose folder with prompt "Please select directory.")
end tell
कर सकता है चाहते हैं इस पोस्ट का पालन करने के बाद मैंने इस प्रश्न को देखने के लिए व्यवसाय में विशेषज्ञों के एक समूह से पूछा और निष्पक्ष तरीके से हमारे उत्तर का मूल्यांकन किया और मुझे जो जवाब मिला वह था थिसिस
"आपके घरों पर एक पॉक्स के बारे में कैसे ?:-)
हां, पूरी सामग्री ठीक वही करती है जो आप कहते हैं - लेकिन यह आसानी से बड़े फ़ोल्डरों पर चोक करती है, और हमेशा के लिए लेती है (और यदि आप 10.6 पर हैं तो एक दिन)। छोटी चीजों के लिए ठीक है, जैसे कि फ़ोल्डर में से एक प्रकार की सभी फ़ाइलों को निकालने की तरह, केवल कुछ ही फाइलें होंगी।
पुनरावर्ती विधि को भी अच्छी तरह से काम करता है - लेकिन यह "सूची फ़ोल्डर" उपयोग कर रहा है, और के लिए यह कहना है कि वह पदावनत है और हम इसे किसी भी अधिक उपयोग नहीं करना चाहिए शब्दकोश सूची "
तो मैं करने से सुनते हैं। घोषणा करें कि मैं गलत था! इन दोनों समाधानों के वैध हैं लेकिन उनके उपयोग में "पॉक्स" या छेद हैं। मेरी एप्पलियां फिलिप को।क्या उसे अपना जवाब संपादित करने का फैसला करना चाहिए (क्योंकि यह मेरा वोट बदलने का एकमात्र तरीका है) मुझे वापस लौटने में खुशी होगी और उसे +1
राइट "की ... हर डिस्क आइटम नहीं मिल सकता है" कुछ लिखते हैं बनाया है, क्योंकि {दस्तावेज़ फ़ाइल "फ़ाइल नाम" के एक बड़े पैमाने पर सूची एप्लिकेशन "फाइंडर", विज्ञापन मतली} की स्टार्टअप डिस्क के फ़ोल्डर "उपयोगकर्ता" फ़ोल्डर के फ़ोल्डर "फ़ोल्डर" फ़ोल्डर के फ़ोल्डर "सबफ़ोल्डर" का फ़ोल्डर और बाद में प्रक्रिया करने के लिए * उस * को नीचे की आवश्यकता के रूप में बहुत अधिक उपयोगी है मेरा वोट –
आपके पास सूची करने के लिए क्या है और आपकी आवश्यकता के अनुसार आइटमों का संदर्भ है यानी फ़ाइल में आइटम को आपके काम करने के तरीके की तुलना में अधिक काम करना है, इसलिए मैंने आपको एक वोट दिया है, मैंने इसे आपको नहीं दिया ऐसा लगता है कि ऐसा लगता है कि – mcgrailm
आपके कैफाइललिस्ट केवल फाइलों की सूची की एक सूची देता है और फ़ाइल से कहां से आया है इसका कोई संदर्भ नहीं देता है, तो फिर फ़ोल्डर को कहां से पता चला कि यह कहां से आया था? – mcgrailm
वाह यह काफी देर हो चुकी है लेकिन मैंने जांच की और यह काम करता है।
tell application "Finder" to set folder_root to (choose folder with prompt "Please select directory.")
set fl to {}
dump_folder(folder_root)
on dump_folder(f)
global fl
tell application "System Events" to set end of fl to (get the POSIX path of f)
tell application "Finder" to set nfl to (the items of the contents of f)
repeat with nf in nfl
dump_folder(nf as alias)
end repeat
end dump_folder
fl
- 1. ऐप्पलस्क्रिप्ट
- 2. ऐप्पलस्क्रिप्ट
- 3. ऐप्पलस्क्रिप्ट
- 4. ऐप्पलस्क्रिप्ट
- 5. ऐप्पलस्क्रिप्ट फ़ंक्शन
- 6. ऐप्पलस्क्रिप्ट विधियों को अन्य ऐप्पलस्क्रिप्ट में आयात करें?
- 7. ऐप्पलस्क्रिप्ट संपादक, "परिणाम" विंडो
- 8. कोको एप्लिकेशन से ऐप्पलस्क्रिप्ट चलाएं
- 9. डॉक आइकन एक्सेस करना ऐप्पलस्क्रिप्ट
- 10. ऐप्पलस्क्रिप्ट घटनाओं के लिए सुन सकते हैं?
- 11. ऐप्पलस्क्रिप्ट - सभी फ़ॉन्ट्स को सूचीबद्ध करें
- 12. मैं ऐप्पलस्क्रिप्ट को कैसे डिबग करूं?
- 13. कोको एप्लिकेशन को सरल ऐप्पलस्क्रिप्ट कमांड
- 14. ऐप्पलस्क्रिप्ट के साथ आप क्या कर सकते हैं?
- 15. ऐप्पलस्क्रिप्ट का उपयोग कर मैक पर वॉल्यूम बढ़ाएं?
- 16. ऐप्पलस्क्रिप्ट में लाइन से फाइल लाइन के माध्यम से इटरेटिंग?
- 17. ऐप्पलस्क्रिप्ट फ्रंट एप्लिकेशन को लक्षित करने के लिए
- 18. जावा से ऐप्पलस्क्रिप्ट निष्पादित करने का सबसे अच्छा तरीका
- 19. यह निर्धारित करना कि ऐप्पलस्क्रिप्ट कमांड का उपयोग
- 20. क्या पाइथन में लिखा गया एक प्रोग्राम ऐप्पलस्क्रिप्ट किया जा सकता है?
- 21. क्या ऐप्पलस्क्रिप्ट शैल स्क्रिप्ट का आउटपुट ले सकता है और पेस्ट बफर में डाल सकता है?
- 22. एप्लिकेशन में मेनू पर क्लिक करने के लिए ऐप्पलस्क्रिप्ट या ऑटोमेटर?
- 23. ऐप्पलस्क्रिप्ट के माध्यम से इनडिज़ीन XMLElements जोड़ते समय मैं प्रदर्शन में सुधार कैसे कर सकता हूं?
- 24. क्या ऐप्पलस्क्रिप्ट ब्राउज़र टैब तक पहुंच सकता है और उनमें जावास्क्रिप्ट निष्पादित कर सकता है?
- 25. ओएस एक्स में ऐप्पलस्क्रिप्ट का उपयोग कर विंडो पर सेट विंडो सीमाएं
- 26. ऐप्पलस्क्रिप्ट का उपयोग करके एक एक्सएमएल फ़ाइल कैसे लाएं और पार्स कैसे करें?
- 27. ऐप्पलस्क्रिप्ट सिंटैक्स को साफ़ करने के लिए एक्सकोड 4.1 को स्वचालित करने के लिए, फिर
- 28. रूबी के माध्यम से ऐप्पलस्क्रिप्ट से बचें: आरबी-एप्सस्क्रिप्ट या रूबियोसा?
- 29. ऐप्पलस्क्रिप्ट - सिस्टम इवेंट्स त्रुटि: सहायक उपकरणों के लिए एक्सेस अक्षम है
- 30. ऐप्पलस्क्रिप्ट में आप दूरस्थ डेटा (उदा। जेएसओएन) कैसे प्राप्त कर सकते हैं?
कृपया मेरी पोस्ट – mcgrailm
देख मैं अपनी पोस्ट – mcgrailm
पर कोई संपादन ऐसा – user2159978