मैं एक प्रक्रिया है जो एक पथ और उपपथ में उपयोगकर्ता द्वारा दर्ज एक फ़ाइल के लिए खोज करता मिल गया है, मैं इस लाइन के अलावा इसमें से अधिकांश की एक अच्छी समझ है:निर्देशिका नाम '।' क्या करते हैं और '..' मतलब और faDirectory का क्या मतलब है?
if ((Rec.Attr and faDirectory) <> 0) and (Rec.Name<>'.') and (Rec.Name<>'..')
पूरी प्रक्रिया इस प्रकार है , सहायता की सराहना की जाएगी क्योंकि मुझे यकीन नहीं है कि कोड की इस पंक्ति के उद्देश्य से, क्या यह उपपथ में कुछ जांच रहा है?
procedure TfrmProject.btnOpenDocumentClick(Sender: TObject);
begin
FileSearch('C:\Users\Guest\Documents', edtDocument.Text+'.docx');
end;
procedure TfrmProject.FileSearch(const Pathname, FileName : string);
var Word : Variant;
Rec : TSearchRec;
Path : string;
begin
Path := IncludeTrailingBackslash(Pathname);
if FindFirst(Path + FileName, faAnyFile - faDirectory, Rec) = 0
then repeat Word:=CreateOLEObject('Word.Application');
Word.Visible:=True;
Word.Documents.Open(Path + FileName);
until FindNext(Rec) <> 0;
FindClose(Rec);
if FindFirst(Path + '*.*', faDirectory, Rec) = 0 then
try
repeat
if ((Rec.Attr and faDirectory) <> 0) and (Rec.Name<>'.') and (Rec.Name<>'..') then
FileSearch(Path + Rec.Name, FileName);
until FindNext(Rec) <> 0;
finally
FindClose(Rec);
end;
end; //procedure FileSearch
तो (Rec.Attr और faDirectory) एक नकारात्मक मान देता है यदि वर्तमान TSearchRec तत्व निर्देशिका है? यह – Alexjjsmith
क्यों नहीं है, लाइन '(Rec.Attr और faDirectory)' 'AND' ऑपरेंड का उपयोग यह जांचने के लिए करता है कि प्रविष्टि के attibutes में 'faDirectory' ($ 00000010) मान सेट किया गया है या नहीं। – RRUZ
मैं देखता हूं, बहुत बहुत धन्यवाद। मुझे पता है कि यह मूल सवाल नहीं था कि मुझे तकनीकी रूप से एक नया प्रश्न बनाना चाहिए, लेकिन मैं सोच रहा था कि क्या आपके पास समय है कि आप मुझे सुझाव दे सकते हैं कि मुझे यह दिखाने के लिए एक शोमेज कैसे हो सकता है कि मुझे फाइल नहीं मिली है, मेरे पास है एक बुलियन वैरिएबल डालने का प्रयास किया गया है जहां परिवर्तनीय फ़ाइलफॉउंड को गलत पर सेट किया गया है, लेकिन फ़ाइलफॉउंड: = सही है अगर FindFirst (पथ + फ़ाइल नाम, faAnyFile - faDirectory, Rec) = 0, हालांकि यह एक पुनरावर्ती प्रक्रिया है जो यह काम नहीं करेगा, प्राप्त करने के किसी भी आसान तरीके यह? – Alexjjsmith