2

所以我正在创建一个 pascal 脚本,它将在主目录中创建一个目录,并在该新目录中创建多个文件夹。(插入 XZibit 双关语)

现在我们在我工作的地方执行此操作的方式,我们将这些变量发送到一个 exe,然后它将根据传递的内容创建目录(在本例中,路径为“完整路径”)。

我不确定我是否正确地处理了这个问题并且会喜欢更突出的 PASCAL 大师的输入:)

const
ARRAY1: Array[1..9] of String = (
     'NQN', 'Documents', 'Correspondences',
     'Worksheets', 'Reports', 'Claims',
     'Certificate of Insurance', 'Invoice', 'Monthly Reports'
);
var
i: Integer;
fullpath, path, name, os, es, cmd: String;
Code : LongWord;
res: Integer;

Begin
path := 'Policies'
fullpath := path+'\'+[i]
     for i := 1 to 9 do
    IF(ReqList.Values['sRM_ID'] = '') then
        Begin
            cmd := 'C:\XXX\bin\mkdir.exe "'+fullpath+'"';
            res :=ExecuteProc(cmd, 'C:\XXX\bin', true, -1, true, nil, os, es, code);
            if(res = 0) then
                Begin
                    ReqList.values['NoErrors'] := '1';
                    ReqList.Values['Response_content']:=  '{"valid":"1","message":"'+ReplaceString(ReplaceString(os,#13,'',false),#10,'',false)+'"}';
                end
            else
                begin
                    ReqList.Values['NoErrors'] := '0';
                    Reqlist.Values['Response_Content'] := '{"valid":"0","message":"'+ReplaceString(ReplaceString(os,#13,'',false),#10,'',false)+'"}';
                end;
        END
        ELSE
                Begin
                    ReqList.Values['Response_Content'] := '{"valid":"0","message":"A folder or file with the same name already exists."}';
                End;
                    ReqList.Values['Response_ContentType'] := 'HTML';
4

1 回答 1

5

一旦确定了数组中每个条目的绝对路径,如果它们不存在,ForceDirectories 将创建它们,如上面 bummi 建议的那样。

假设您的根路径是相对于当前可执行路径的,它可能就像这样简单:

const
  ARRAY1: Array [1 .. 9] of String = ('NQN', 'Documents', 'Correspondences',
    'Worksheets', 'Reports', 'Claims', 'Certificate of Insurance', 'Invoice',
    'Monthly Reports');
var
  s: string;
  path: string;
  fullpath: string;
begin
  path := 'Policies';
  for s in ARRAY1 do
  begin
    fullpath := ExpandFileName(IncludeTrailingPathDelimiter(path) + s);
    ForceDirectories(fullpath);
  end;
end;
于 2013-10-14T14:53:37.197 回答