फ़ाइल

इस ऑब्जेक्ट को, विश्लेषण के दौरान बनाया जाता है. इससे, उस फ़ाइल या डायरेक्ट्री के बारे में पता चलता है जिसे एक्ज़ीक्यूशन के दौरान पढ़ा या लिखा जाएगा. यह खुली हुई फ़ाइल का हैंडल नहीं है. इसका इस्तेमाल, फ़ाइल के कॉन्टेंट को सीधे तौर पर पढ़ने या लिखने के लिए नहीं किया जा सकता. इसके बजाय, इसका इस्तेमाल करके, नियम लागू करने वाले फ़ंक्शन में ऐक्शन ग्राफ़ बनाया जाता है. इसके लिए, इसे ऐक्शन बनाने वाले फ़ंक्शन में पास किया जाता है. ज़्यादा जानकारी के लिए, नियमों का पेज देखें.

जब किसी File को Args ऑब्जेक्ट में, map_each फ़ंक्शन का इस्तेमाल किए बिना पास किया जाता है, तो उसे स्ट्रिंग में बदल दिया जाता है. इसके लिए, उसके path फ़ील्ड की वैल्यू ली जाती है.

सदस्य

basename

string File.basename

इस फ़ाइल का बेस नेम. यह डायरेक्ट्री में मौजूद फ़ाइल का नाम है.

dirname

string File.dirname

उस डायरेक्ट्री का नाम जिसमें यह फ़ाइल मौजूद है. यह पाथ से लिया जाता है और हमेशा एक्ज़ीक्यूशन डायरेक्ट्री के हिसाब से होता है.

extension

string File.extension

इस फ़ाइल का एक्सटेंशन. यह सबसे दाईं ओर मौजूद पीरियड के बाद (उसे शामिल किए बिना) होता है. अगर फ़ाइल के बेस नेम में कोई पीरियड शामिल नहीं है, तो यह खाली स्ट्रिंग होती है.

is_directory

bool File.is_directory

अगर यह डायरेक्ट्री है, तो 'सही' दिखाता है. इससे, फ़ाइल के टाइप के बारे में पता चलता है. जैसे, ctx.actions.declare_directory. इससे फ़ाइल सिस्टम पर मौजूद उसके टाइप के बारे में पता नहीं चलता. ऐसा हो सकता है कि दोनों टाइप अलग-अलग हों.

is_source

bool File.is_source

अगर यह सोर्स फ़ाइल है, तो 'सही' दिखाता है. इसका मतलब है कि इसे जनरेट नहीं किया गया है.

bool File.is_symlink

अगर यह डायरेक्ट्री है, तो 'सही' दिखाता है. इससे, फ़ाइल के टाइप के बारे में पता चलता है. जैसे, ctx.actions.declare_symlink. इससे फ़ाइल सिस्टम पर मौजूद उसके टाइप के बारे में पता नहीं चलता. ऐसा हो सकता है कि दोनों टाइप अलग-अलग हों.

owner

Label File.owner

उस टारगेट का लेबल जो यह फ़ाइल बनाता है. None दिखाया जा सकता है.

path

string File.path

यह फ़ाइल का एक्ज़ीक्यूशन पाथ है. यह वर्कस्पेस की एक्ज़ीक्यूशन डायरेक्ट्री के हिसाब से होता है. इसमें दो हिस्से होते हैं. पहला हिस्सा, रूट कहलाता है. यह ज़रूरी नहीं है (रूट मॉड्यूल भी देखें). दूसरा हिस्सा, short_path होता है. रूट खाली हो सकता है. आम तौर पर, जनरेट नहीं की गई फ़ाइलों के लिए ऐसा होता है. जनरेट की गई फ़ाइलों के लिए, इसमें आम तौर पर कॉन्फ़िगरेशन के हिसाब से पाथ का फ़्रैगमेंट शामिल होता है. इसमें, टारगेट सीपीयू आर्किटेक्चर जैसी चीज़ें कोड में होती हैं. इस आर्किटेक्चर का इस्तेमाल, फ़ाइल को बनाते समय किया गया था. अगर कोई फ़ाइल, बाइनरी की रनफ़ाइल में है, तो उस पाथ के लिए short_path का इस्तेमाल करें जिसके तहत फ़ाइल को मैप किया गया है.

root

root File.root

वह रूट जिसके तहत यह फ़ाइल मौजूद है.

short_path

string File.short_path

यह फ़ाइल का पाथ है. यह उसके रूट के हिसाब से होता है. इसमें, ऊपर बताया गया रूट शामिल नहीं होता. इसका मतलब है कि इसमें पाथ के कॉन्फ़िगरेशन के हिसाब से फ़्रैगमेंट शामिल नहीं होते. अगर कोई फ़ाइल, बाइनरी की रनफ़ाइल में है, तो यह वह पाथ भी है जिसके तहत फ़ाइल को मैप किया गया है.

tree_relative_path

string File.tree_relative_path

यह फ़ाइल का पाथ है. यह पूर्वज के ट्री के रूट के हिसाब से होता है. हालांकि, ऐसा तब होता है, जब पूर्वज का is_directory फ़ील्ड 'सही' हो. tree_relative_path सिर्फ़ ऐक्शन कमांड में, डायरेक्ट्री की बढ़ाई गई फ़ाइलों के लिए उपलब्ध होता है. जैसे, Args.add_all(). अन्य टाइप की फ़ाइलों के लिए, इस फ़ील्ड को ऐक्सेस करने पर गड़बड़ी होती है.