假定要将文件temp.txt拷贝到某个目录下所有子目录内,但只知道该目录含有\xujy\temp\,如何实施,最好有代码,谢谢!

解决方案 »

  1.   

    用findfirst/findnext遍历子目录

    直接运行xcopy /s?哦?一个文件复制到很多目录?那它不行
      

  2.   

    用这几个函数吧:FindFirst,FindNext,FindClose
    有个例子是这样的:
    procedure SearchFileEx(const Dir, Ext: string; Files: TStrings);
    var
    Found: TSearchRec;
    i: integer;
    Dirs: TStrings;
    Finished: integer;
    StopSearch: Boolean;
    begin
    StopSearch := False;
    Dirs := TStringList.Create;
    Finished := FindFirst(Dir + '*.*', 63, Found);
    while (Finished = 0) and not (StopSearch) do
    begin
    if (Found.Name <> '.') then
    begin
    if (Found.Attr and faDirectory) = faDirectory then
    Dirs.Add(Dir + Found.Name);
    else
    if Pos(UpperCase(Ext), UpperCase(Found.Name)) > 0 then
    Files.Add(Dir + Found.Name);
    end;
    Finished := FindNext(Found);
    end;
    FindClose(Found);
    if not StopSearch then
    for i := 0 to Dirs.Count - 1 do
    SearchFileEx(Dirs[i], Ext, Files);
    Dirs.Free;
    end;procedure FindSubDir(DirName: string; FileString: TStrings);
    var
    searchRec: TsearchRec;
    begin
    //找出所有下级子目录。
    if (FindFirst(DirName + '*.*', faDirectory, SearchRec) = 0) then
    begin
    if IsValidDir(SearchRec) then
    FileString.Add(DirName + SearchRec.Name);
    while (FindNext(SearchRec) = 0) do
    begin
    if IsValidDir(SearchRec) then
    FileString.Add(DirName + SearchRec.Name);
    end;
    end;
    FindClose(SearchRec);
    end;function IsValidDir(SearchRec: TSearchRec): Boolean;
    begin
    if (SearchRec.Attr = 16) and (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
    Result := True
    else
    Result := False;
    end; 
    具体自己试试看吧.
      

  3.   

    ExtractFilePath(Application.ExeName+'/..')