inno setup - इनो सेटअप: कॉपी फ़ोल्डर, सबफ़ोल्डर्स और कोड कोड में पुनरावर्ती फ़ाइलें



inno-setup pascalscript (1)

क्या कोड सेक्शन के भीतर एक डायरेक्टरी की सभी फाइलों और सबडायरेक्टरीज को ब्राउज और रीसर्च करके कॉपी / मूव करने का कोई तरीका है? ( PrepareToInstall )

मुझे एक विशिष्ट निर्देशिका को अनदेखा करने की आवश्यकता है, लेकिन xcopy का उपयोग करते हुए, यह सभी निर्देशिकाओं /default/ को अनदेखा करता है, उदाहरण के लिए, और मुझे केवल एक विशिष्ट अनदेखा करने की आवश्यकता है।

बाद में जरूरत पड़ने पर Files सेक्शन को निष्पादित किया जाता है।


किसी निर्देशिका को प्रोग्रामेटिक रूप से कॉपी करने के लिए पुन: उपयोग करें:

procedure DirectoryCopy(SourcePath, DestPath: string);
var
  FindRec: TFindRec;
  SourceFilePath: string;
  DestFilePath: string;
begin
  if FindFirst(SourcePath + '\*', FindRec) then
  begin
    try
      repeat
        if (FindRec.Name <> '.') and (FindRec.Name <> '..') then
        begin
          SourceFilePath := SourcePath + '\' + FindRec.Name;
          DestFilePath := DestPath + '\' + FindRec.Name;
          if FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then
          begin
            if FileCopy(SourceFilePath, DestFilePath, False) then
            begin
              Log(Format('Copied %s to %s', [SourceFilePath, DestFilePath]));
            end
              else
            begin
              Log(Format('Failed to copy %s to %s', [SourceFilePath, DestFilePath]));
            end;
          end
            else
          begin
            if DirExists(DestFilePath) or CreateDir(DestFilePath) then
            begin
              Log(Format('Created %s', [DestFilePath]));
              DirectoryCopy(SourceFilePath, DestFilePath);
            end
              else
            begin
              Log(Format('Failed to create %s', [DestFilePath]));
            end;
          end;
        end;
      until not FindNext(FindRec);
    finally
      FindClose(FindRec);
    end;
  end
    else
  begin
    Log(Format('Failed to list %s', [SourcePath]));
  end;
end;

अपनी आवश्यकता के अनुसार कोई भी फ़िल्टरिंग जोड़ें। कैसे देखें . और .. फिल्टर्ड हैं।

उपयोग के उदाहरण के लिए, प्रश्नों के मेरे उत्तर देखें:

  • इनो सेटअप में छिपी फाइलों को कॉपी करना
  • जब उपयोगकर्ता स्थापना रद्द करने की पुष्टि करता है तो एक फ़ोल्डर को कैसे बचाया जाए? (इनो सेटअप) ।