程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> C++ Builder中目錄處理的一些函數

C++ Builder中目錄處理的一些函數

編輯:vc教程

在時,經常有一些針對目錄的操作,如打開目錄對話框選擇一個目錄,直接創建多級目錄,直接刪除多級目錄,判斷某個目錄是否存在等。本文就這些問題給出編程實現方法,並給出詳細的程序代碼,供各位編程愛好者參考。

一、判斷目錄是否存在:

C++ Builder中提供了檢查文件是否存在的函數FileExists,但沒有提供檢查目錄是否存在的函數,我們可以用Windows API函數FindFirstFile實現這個功能。程序實現如下:

設char *Dir為帶判斷的目錄

bool Exist;                      // 最後結果,表示目錄是否存在
if(Dir[strlen(Dir)]=='\\')Dir[strlen(Dir)-1]='\0';  // 先刪除最後的“\”
WIN32_FIND_DATA wfd;                 // 查找
HANDLE hFind=FindFirstFile(Dir,&wfd);         
if(hFind==INVALID_HANDLE_VALUE)Exist=false;      // 沒有找到配備,目錄肯定不存在
else
{
   if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) // 檢查找到的結果是否目錄
     Exist=true;                   // 是目錄,目錄存在
   else
     Exist=false;                  // 是目錄,目錄不存在
   FindClose(hFind);
}

二、打開目錄選擇對話框選擇一個目錄:

大多專業軟件在要求輸入目錄的編輯框旁都放了一個按鈕,點擊後打開一個目錄窗口,很多編程愛好者也希望能掌握這個方法。實現這個功能要調用Windows API函數SHBrowseForFolder,完整聲明為WINSHELLAPI LPITEMIDLIST WINAPI SHBrowseForFolder(LPBROWSEINFO lpbi),返回一個ITEMIDLIST類型的指針,通過這個指針調用函數SHGetPathFromIDList可以確定所選擇的目錄的全名稱。入參為BROWSEINFO結構的指針,這個結構較為復雜,成員如下所示:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved