我想在程序FormCreate时,在某个目录下创建一个子文件夹,例如:在c:\windows下创建一个空文件夹,命名为abc。
另外想请教如何删除一个指定的文件夹(文件夹中有文件)。还望大家指教,谢谢!

解决方案 »

  1.   

    创建文件夹:
    CreateDir('c:\windows\abc');
      

  2.   

    删除文件夹(包含文件):uses shellapi;procedure DeleteFolder(dir: string);
    var shfs: SHFILEOPSTRUCT;
    begin
      with shfs do begin
        Wnd := 0;
        wFunc := FO_DELETE;
        pFrom := PChar(dir);
        pTo := nil;
        fFlags := FOF_NOCONFIRMATION+FOF_NOERRORUI;
        hNameMappings := nil;
        fAnyOperationsAborted := False;
      end;
      SHFileOperation(shfs);
    end;
      

  3.   

    删除文件夹
    先用findfirst,findnext查出所有文件,用deletefile删除,然后RemoveDir;
      

  4.   

    Function F_FileOperation(const Source, Dest: string;ai_flag:integer;abl_Question:Boolean): boolean;
     {********************************************************
        函数功能:实现对文件的操作
        入口    :ai_flag
                        1,xCOPY         //拷贝目录下所有文件,包括子目录
                        2,xDELETE       //删除目录所有文件,包括子目录
                        3,xMOVE         //移动目录所有文件,包括子目录
                  SourcePath
                        源目录
                  DestPath
                        目标路径
                  abl_Question:         //拷贝时是否出现提示
        出口    :1、 成功
                  -1、失败
        作者    :
        时间    :2002-10-1
    *********************************************************}
    var
      fo: TSHFILEOPSTRUCT;      //目录结构
    begin
        FillChar(fo, SizeOf(fo), 0);    Case  ai_flag of
            1: fo.WFunc := FO_COPY;
            2: fo.WFunc := FO_DELETE;
            3: fo.WFunc := FO_MOVE;
            4: fo.WFunc :=FO_RENAME
        else
            result := false;
        end;
        if abl_Question then
            fo.fFlags :=FOF_FILESONLY
        else
            fo.fFlags := FOF_NOCONFIRMATION+FOF_NOCONFIRMMKDIR +FOF_SILENT;
        with fo do
        begin
            Wnd := 0;
            pFrom := PChar(source+#0);
            pTo := PChar(Dest+#0);
        end;
        Result := (SHFileOperation(fo) = 0);
    end;创建文件夹如楼上所说
      

  5.   

    1)
        if not DirectoryExists(sDirName) then //如果目錄不存在
          ForceDirectories(sDirName); //強迫建立目錄
    2)
    function RemoveTree(strDirName:string):Boolean;
    //  刪除路徑
    var
       lpFileOp: TSHFileOpStruct;
    begin
       with lpFileOp do
       begin
         Wnd :=0;
         wFunc := FO_DELETE;
         pFrom := pchar(strDirName+#0);//此?要?除的文件或目?,支持*、?
         pTo := nil;
         fFlags :=FOF_NOCONFIRMATION;//不?示?度??框
         hNameMappings := nil;
         lpszProgressTitle := nil;
         fAnyOperationsAborted := True;
       end;
       Result := (SHFileOperation(lpFileOp) = 0);
    end;
      

  6.   

    创建多级文件夹:
    ForceDirectories('c:\windows\abc\xyz\123');
      

  7.   

    创建多级文件夹:
    ForceDirectories('c:\windows\abc\xyz\123');
      

  8.   

    建立目录使用CreateDir函数
      

  9.   

    to  sysu(死树):
    我按你的:
    删除文件夹(包含文件):uses shellapi;procedure DeleteFolder(dir: string);
    var shfs: SHFILEOPSTRUCT;
    begin
      with shfs do begin
        Wnd := 0;
        wFunc := FO_DELETE;
        pFrom := PChar(dir);
        pTo := nil;
        fFlags := FOF_NOCONFIRMATION+FOF_NOERRORUI;
        hNameMappings := nil;
        fAnyOperationsAborted := False;
      end;
      SHFileOperation(shfs);
    end;
    怎么不行啊
      

  10.   

    to  yhtang() :
    你是怎么不行?我测试过可以。
      

  11.   

    就是把你的代码拷进去
    只是把你的dir换成我的文件夹
    文件夹中有文件
    如果把dir换成某个文件
    是可以的