當前位置:首頁 » 文件管理 » c獲取文件夾中

c獲取文件夾中

發布時間: 2025-01-19 02:33:48

① 使用vc,如何獲取win7的用戶文件夾路徑 C:\Users\Public和C:\Users\用戶名

你好,你可以用以下方法來獲得該路徑。

在Windows里,用戶的特殊路徑都存放在注冊表裡。

位置在:HEY_CURRENT_下面

獲取的方法:

HKEYmyKey;

if(ERROR_SUCCESS!=RegOpenKey(HKEY_CURRENT_USER,"Software\Microsoft\Windows\CurrentVersion\Explorer\ShellFolders",&myKey))

{

cout<<"注冊表打開失敗!"<<endl;

return1;

}

DWORDdwType;

DWORDdwSize=200;

charstring[200];

if(ERROR_SUCCESS!=RegQueryValueEx(myKey,(LPSTR)"Desktop",NULL,&dwType,(BYTE*)string,&dwSize))

{

cout<<"讀取desktop數據失敗!"<<endl;

return1;

}

RegCloseKey(myKey);

但是該子項下面的路徑都是你要的那個路徑的子路徑(如:C:UsersPublicDesktop)。

你可以通過使用下面幾個函數的組合來獲得父路徑(C:UsersPublic):

TCHARszPath[_MAX_PATH];

將子路徑strcpy入szPath;

TCHARszDrive[_MAX_DRIVE];

TCHARszDir[_MAX_DIR];

TCHARszFName[_MAX_FNAME];

TCHARszExt[_MAX_EXT];

_tsplitpath(szPath,szDrive,szDir,szFName,szExt);

_tmakepath(szPath,szDrive,szDir,_T(""),_T(""));

希望我的回答能夠對你有所幫助!

② C# 遍歷文件夾下所有子文件夾中的文件,得到文件名

輸入某文件夾路徑,遍歷該文件夾及其子文件夾(包括子文件夾的子文件夾等),獲取其中所有文件的函數:

/// <summary>

/// 查找指定文件夾下指定後綴名的文件

/// </summary>

/// <param name="directory">文件夾</param>

/// <param name="pattern">後綴名</param>

/// <returns>文件路徑</returns>

public void GetFiles(DirectoryInfo directory, string pattern, ref List<string> fileList)

foreach (FileInfo info in directory.GetFiles(pattern))

catch (System.Exception ex)

foreach (DirectoryInfo info in directory.GetDirectories())//獲取文件夾下的子文件夾

語言結構

類:一個基本的C#類中包含數據成員、屬性、構造器和方法。屬性可以是靜態或實例成員。在C#中類的聲明與C++和Java很相似。但是,不像C++,C#結構體與類是不支持繼承多個父類。但是,與Java相同的是,一個結構體可以實現介面(interface)。Java的關鍵字import已經被替換成using,它起到了同樣的作用。

以上內容參考:網路-c#

③ C語言怎麼讀取某一文件夾下的所有文件夾和文件

讀取的代碼方式如下:

intmain()

{

longfile;

struct_finddata_tfind;

_chdir("d:\");

if((file=_findfirst("*.*",&find))==-1L)

{

printf("空白! ");

exit(0);

}

printf("%s ",find.name);

while(_findnext(file,&find)==0)

{

printf("%s ",find.name);

}

_findclose(file);

return0;

}

④ vc函數GetFileTime獲取文件夾的訪問時間時問題

通常,文件、文件夾的時間屬性指的是創建時間、最近訪問時間和最近修改時間等幾個具體屬性。對於文件的上述屬性可以通過GetFileTime()來獲取,對於文件夾,在通過CreateFile()函數將其打開後,其獲取得到的句柄可以當作文件句柄來使用。因此,通過GetFileTime()函數同樣也可以得到文件夾的時間屬性。GetFileTime()函數原型如下:
BOOLGetFileTime(
HANDLE hFile, // 文件句柄
LPFILETIME lpCreationTime, // 創建時間的地址
LPFILETIME lpLastAccessTime, //最近訪問時間的地址
LPFILETIME lpLastWriteTime // 最近修改時間的地址
);
其中後三個參數均是指向FILETIME結構的指針,得到的也都是UTC時間,如果需要,可以通過FileTimeToLocalFileTime()函數將此UTC時間轉化成本地時間。而且還可以進一步通過FileTimeToSystemTime()函數將其從文件時間格式轉化成系統時間格式,轉化後的時間格式將保存在一個SYSTEMTIME結構對象中。類似的,在將時間信息寫入到文件夾屬性時,如果不是文件時間格式也應當通過SystemTimeToFileTime()函數將其從系統時間格式轉換成文件時間格式,然後再通過SetFileTime()函數將指定的時間寫入到文件夾的時間屬性中去。這樣,在進行數據備份和恢復的過程中,包括根目錄在內的所有文件夾都可以保持時間屬性的一致。

// 獲取指定文件夾的時間屬性,入口參數DirName指定了待處理的文件夾,
//stime為一指向SYSTEMTIME結構的指針
BOOLCSetForderTimeDlg::GetDirTime(CString DirName, SYSTEMTIME &stime){
// 打開文件夾
HANDLE hDir = CreateFile (DirName,GENERIC_READ,
FILE_SHARE_READ|FILE_SHARE_DELETE,
NULL, OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS, NULL);
FILETIME lpCreationTime; // 文件夾的創建時間
FILETIME lpLastAccessTime; // 對文件夾的最近訪問時間
FILETIME lpLastWriteTime; // 文件夾的最近修改時間
// 獲取文件夾時間屬性信息
if (GetFileTime(hDir,&lpCreationTime, &lpLastAccessTime, &lpLastWriteTime)){
FILETIME ftime;
FileTimeToLocalFileTime(&lpLastWriteTime,&ftime); // 轉換成本地時間
FileTimeToSystemTime(&ftime,&stime); // 轉換成系統時間格式
}
CloseHandle(hDir); // 關閉打開過的文件夾
return retval;
}
// 設置指定文件夾的時間屬性,入口參數DirName指定了待處理的文件夾,
//new_time為一指向SYSTEMTIME結構的指針
BOOLCSetForderTimeDlg::SetDirTime(CString DirName, SYSTEMTIME new_stime){
// 打開目錄的Win32 API調用
HANDLE hDir = CreateFile(DirName,GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_DELETE,
NULL, OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS, NULL);
FILETIME lpCreationTime; // 文件夾的創建時間
FILETIME lpLastAccessTime; // 對文件夾的最近訪問時間
FILETIME lpLastWriteTime; // 對文件夾的最近修改時間
SystemTimeToFileTime(&new_stime,&lpCreationTime); // 轉換成文件時間格式
SystemTimeToFileTime(&new_stime,&lpLastAccessTime);
SystemTimeToFileTime(&new_stime,&lpLastWriteTime);

CloseHandle(hDir); // 關閉文件夾
return retval;
}

⑤ C++用libcurl庫GET網頁(比如baidu.com)並將獲取到的網頁內容保存到本地文件夾中

#include <io.h>
#include "curl/curl.h"
#pragma comment(lib, "ws2_32.lib")
#pragma comment ( lib, "libcurl.lib" )
#pragma comment ( lib, "ws2_32.lib" )
#pragma comment ( lib, "winmm.lib" )
#pragma comment ( lib, "wldap32.lib" )
//這是libcurl接收數據的回調函數,相當於recv的死循環
//其中stream可以自定義數據類型,這里我傳入的是文件保存路徑
static size_t write_callback( void *ptr, size_t size, size_t nmemb, void *stream )
{
int len = size * nmemb;
int written = len;
FILE *fp = NULL;

if ( access( (char*)stream, 0 ) == -1 )
{
fp = fopen( (char*) stream, "wb" );
}
else
{
fp = fopen( (char*) stream, "ab" );
}
if (fp)
{
fwrite( ptr, size, nmemb, fp );
}
return written;
}
int GetUrl( const char *url, char *savepath )
{
CURL *curl;
CURLcode res;
struct curl_slist *chunk = NULL;

curl = curl_easy_init();
if ( curl ) {
curl_easy_setopt( curl, CURLOPT_VERBOSE, 0L );
curl_easy_setopt( curl, CURLOPT_URL, url );
//指定回調函數
curl_easy_setopt( curl, CURLOPT_WRITEFUNCTION, write_callback);
//這個變數可作為接收或傳遞數據的作用
curl_easy_setopt( curl, CURLOPT_WRITEDATA, savepath );
res = curl_easy_perform( curl );
if (res == CURLE_OK)
{
return 1;
}
return 0;
}
}
int main( void )
{
if ( GetUrl( "t.sina.com.cn", "c:/1.txt" ) )
{
printf( "OK" );
}
return 0;
}

熱點內容
存儲器國產率 發布:2025-01-19 07:04:36 瀏覽:566
銳程cc藍鯨版選什麼配置 發布:2025-01-19 06:56:28 瀏覽:168
城鎮居民醫保卡的原始密碼是多少 發布:2025-01-19 06:55:54 瀏覽:787
wifi密碼如何修改密碼 發布:2025-01-19 06:39:06 瀏覽:961
sqlserver認證 發布:2025-01-19 06:34:30 瀏覽:815
小米8se安卓p有什麼功能 發布:2025-01-19 06:25:22 瀏覽:358
ucos和linux 發布:2025-01-19 06:24:06 瀏覽:470
關閉chrome緩存 發布:2025-01-19 05:43:55 瀏覽:830
修改svn伺服器ip地址 發布:2025-01-19 05:32:00 瀏覽:441
iis伺服器搭建出現404錯誤 發布:2025-01-19 05:26:39 瀏覽:312