फ़ाइल

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

जब map_each फ़ंक्शन का इस्तेमाल किए बिना, किसी File को Args ऑब्जेक्ट में पास किया जाता है, तो इसे स्ट्रिंग में बदल दिया जाता है. इसके लिए, इसके 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(). अन्य टाइप की फ़ाइलों के लिए, इस फ़ील्ड को ऐक्सेस करना एक गड़बड़ी है.