小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

獲取目錄下所有文件名

 xue_dong5437 2010-09-15
以下程序只能在Windows下運(yùn)行,完全按照c語言編寫。但是添加了windows.h庫。以下程序在Visual C++ 2008下編譯通過。


#undef UNICODE // 如果你不知道什么意思,請不要修改
#define MAX_RESULT 256

#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>


char** EnumFiles(const char *directory, int *count)
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
char result[MAX_RESULT][MAX_PATH];
char **returnresult;
char pattern[MAX_PATH];
int i = 0, j;

// 開始查找
strcpy(pattern, directory);
strcat(pattern, "\\*.*");
hFind = FindFirstFile(pattern, &FindFileData);

if (hFind == INVALID_HANDLE_VALUE)
{
*count = 0;
return NULL;
}
else
{
do
{
strcpy(result[i++], FindFileData.cFileName);
}
while (FindNextFile(hFind, &FindFileData) != 0);
}

// 查找結(jié)束
FindClose(hFind);

// 復(fù)制到結(jié)果中
returnresult = (char **)calloc(i, sizeof(char *));

for (j = 0; j < i; j++)
{
returnresult[j] = (char *)calloc(MAX_PATH, sizeof(char));
strcpy(returnresult[j], result[j]);
}

*count = i;
return returnresult;
}

void main()
{
int i, count;
char ** result;
char directory[MAX_PATH];

printf("請輸入要查詢的文件夾:");
scanf("%s", directory);

result = EnumFiles(directory, &count);

for (i = 0; i < count; i++)
printf("%s\n", result[i]);

}


提問人的追問   2010-02-08 18:47

非常感謝,呵呵,還有兩個(gè)疑問:

1.strcpy(pattern, directory);
strcat(pattern, "\\*.*");這樣行嗎,如果我輸入路徑時(shí)輸入:E:\songs\,那處理之后就是:E: \songs\\\*.*

2. while (FindNextFile(hFind, &FindFileData) != 0); 意思是一直向后查找文件,直到查找失敗是嗎?

失敗的情況是什么呢,包括hFind = INVALID_HANDLE_VALUE嗎,會(huì)不會(huì)越界什么的啊?

回答人的補(bǔ)充   2010-02-08 18:56
1. 可以的,在Win32中 C:\\Windows和 C:\Windows是等價(jià)的。
2. FindNextFile如果沒有下一個(gè)文件可以查找就返回NULL.

PS: MSDN上FindNextFile的描述
http://msdn.microsoft.com/en-us/library/aa364428%28VS.85%29.aspx

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多