2009-11-06 7 views

उत्तर

14

एक "सिस्टम" कॉल (या ऐसा कुछ है, यह स्मृति से है) जिसे आप मनमाने ढंग से प्रोग्राम चलाने के लिए उपयोग करने में सक्षम होना चाहिए, जिसमें mkdir कमांड शामिल हो सकता है।

संपादित करें: मैं लुआ पुस्तक में मेरी प्रोग्रामिंग पाया। पेज 203 पर, यह कैसे आप एक

os.execute("mkdir " .. dirname) 

"नकली" एक निर्देशिका निर्माण आदेश इस्तेमाल कर सकते हैं उल्लेख है।

संपादित करें 2: जोनास थिम की चेतावनी का ध्यान रखें कि यदि निर्देशिका का नाम अविश्वसनीय स्रोत से आता है तो इस आदेश का दुरुपयोग किया जा सकता है!

+9

लुआ डिजाइन दर्शन शुद्ध आईएसओ सी, होना करने के लिए इतनी के रूप में एक सी संकलक के साथ कुछ भी करने के लिए पोर्टेबल होना है। सी मानक पुस्तकालय में कोई निर्देशिका निर्माण कार्य नहीं है। यह प्लेटफ़ॉर्म-विशिष्ट एक्सटेंशन तक छोड़ा गया है, जैसे कि विंडोज़ पर पॉज़िक्स सिस्टम और CreateDirectory *() पर mkdir (2)। –

+0

धन्यवाद;)! मुझे पता था कि मैं इस तरह के निष्पादन() कर सकता था, लेकिन मैं सोच रहा था कि लूआ विकल्प था या नहीं ... मुझे लगता है कि वहां नहीं है;)! – Wookai

+3

यह प्रतिक्रिया ** बहुत खतरनाक ** है। जैसे ही आपका नामकरण होता है; वास्तविक बैश कमांड के बाद, आप अपने आप को एक अच्छी मनमानी कमांड निष्पादन शोषण के लिए सेट अप करते हैं। सही ढंग से dirname से बचने के लिए बहुत सावधान रहें - या बस इस बुरी सलाह को छोड़ दें और चीजों को सही तरीके से करने के बजाय LuaFileSystem का उपयोग करें। –

21

आपको LuaFileSystem लाइब्रेरी उपयोगी मिल सकती है। यह एक mkdir समारोह है।

require "lfs" 
lfs.mkdir("/path/to/dir") 
+0

लिंक के लिए धन्यवाद! मैं इस पल के लिए उपयोगकर्ता अन्य libraires नहीं कर सकता, तो मैं os.execute() संस्करण के साथ रहना होगा, लेकिन मैं अगली बार LuaFileSystem दिमाग में रखेंगे! – Wookai

2

तुम भी लुआ/अप्रैल, अपाचे पोर्टेबल रनटाइम लुआ के लिए बाध्यकारी को देखने के लिए चाहते हो सकता है। दस्तावेज़ here

लुआ का उपयोग करने के कारणों में से एक यह है कि मैं कई ओएस में चलाता कोड लिख सकता हूं। मैं कुछ समय के लिए एलएफएस का उपयोग कर रहा था, लेकिन पाया है कि लुआ/एपीआर का उपयोग करके एक और मंच-तटस्थ पुस्तकालय प्रदान करता है। और एपीआर में कई अन्य उपयोगी दिनचर्या हैं।

1

आप इसके बजाय paths पैकेज का उपयोग कर सकते हैं। तो फिर तुम बस कर सकते हैं:

require 'paths' 

paths.mkdir('your/dir') 
संबंधित मुद्दे