वर्तमान में मैं जेसीएल कोड के आधार पर इस फ़ंक्शन का उपयोग करता हूं, जो ठीक काम करता है:यदि कोई निर्देशिका लिखने योग्य है तो परीक्षण करने के लिए मैं डेल्फी का उपयोग कैसे कर सकता हूं?
function IsDirectoryWriteable(const AName: string): Boolean;
var
FileName: PWideChar;
H: THandle;
begin
FileName := PWideChar(IncludeTrailingPathDelimiter(AName) + 'chk.tmp');
H := CreateFile(FileName, GENERIC_READ or GENERIC_WRITE, 0, nil,
CREATE_NEW, FILE_ATTRIBUTE_TEMPORARY or FILE_FLAG_DELETE_ON_CLOSE, 0);
Result := H <> INVALID_HANDLE_VALUE;
DeleteFile(FileName);
end;
क्या झंडे के साथ मैं कुछ भी सुधार सकता हूं? वास्तव में फ़ाइल बनाने के बिना परीक्षण किया जा सकता है? या यह कार्यक्षमता आरटीएल या जेडी पुस्तकालयों में से एक में पहले से ही उपलब्ध है?
नहीं है कि आप के लिए कोड काम करता है? क्या इस दृष्टिकोण के बारे में कुछ है जो आपको पसंद नहीं है? यह वास्तव में निर्देशिका लिखने के लिए परीक्षण का एक बहुत ही सरल (सरलतम) तरीका है। हालांकि मैंने विंडोज सुरक्षा के साथ कभी भी बहुत कुछ नहीं किया है, मुझे लगता है कि 'GetFileSecurity' फ़ंक्शन का उपयोग करना एक वैकल्पिक दृष्टिकोण है। –
@Andreas मेरा संपादन देखें - अगर मैं मौजूदा फ़ंक्शन फ़ंक्शन (शायद मल्टीप्लाफ्फ़्ट समर्थन के साथ भी) के कॉल द्वारा इस फ़ंक्शन को प्रतिस्थापित कर सकता हूं, तो यह निश्चित रूप से एक सुधार होगा। – mjn
मैं वास्तव में वहां कुछ भी नहीं देख सकता जो आरटीएल में नहीं है - जो जेसीएल कॉल है? –