300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Windows系统C语言获取文件夹来的所有文件名的方法

Windows系统C语言获取文件夹来的所有文件名的方法

时间:2020-06-02 14:09:19

相关推荐

Windows系统C语言获取文件夹来的所有文件名的方法

Windows系统C语言获取文件夹来的所有文件名的方法,代码如下:

#include <io.h>#include <stdio.h>#include <direct.h>#define MAX_LEN 4096int main(void){char root[] = "E:\\Workspace";struct _finddata_t file;intptr_t hFile;char buf[MAX_LEN];if (_chdir(root)){printf("打开文件夹失败: %s\n", root);return 1;}hFile = _findfirst("*.c", &file);while (_findnext(hFile, &file) == 0){sprintf_s(buf, MAX_LEN, "%s\\%s", root, file.name);printf("%s\n", buf);}return 0;}

下面是网友提供的方案,仅供参考:

#include <windows.h>#include <tchar.h>#include <stdio.h>#define BUFSIZE 4096#define LONG_DIR_NAME TEXT("c:\\longdirectoryname")void _tmain(int argc, TCHAR *argv[]){DWORD retval=0;BOOL success; TCHAR buffer[BUFSIZE]=TEXT(""); TCHAR buf[BUFSIZE]=TEXT(""); TCHAR** lppPart={NULL};if( argc != 2 ){_tprintf(TEXT("Usage: %s [file]\n"), argv[0]);return;}// Retrieve the full path name for a file. // The file does not need to exist.retval = GetFullPathName(argv[1],BUFSIZE,buffer,lppPart);if (retval == 0) {// Handle an error condition.printf ("GetFullPathName failed (%d)\n", GetLastError());return;}else {_tprintf(TEXT("The full path name is: %s\n"), buffer);if (lppPart != NULL && *lppPart != 0){_tprintf(TEXT("The final component in the path name is: %s\n"), *lppPart);}}// Create a long directory name for use with the next two examples.success = CreateDirectory(LONG_DIR_NAME,NULL);if (!success){// Handle an error condition.printf ("CreateDirectory failed (%d)\n", GetLastError());return;}// Retrieve the short path name. retval = GetShortPathName(LONG_DIR_NAME,buf,BUFSIZE);if (retval == 0) {// Handle an error condition.printf ("GetShortPathName failed (%d)\n", GetLastError());return;}else _tprintf(TEXT("The short name for %s is %s\n"), LONG_DIR_NAME, buf);// Retrieve the long path name. retval = GetLongPathName(buf,buffer,BUFSIZE);if (retval == 0) {// Handle an error condition.printf ("GetLongPathName failed (%d)\n", GetLastError());return;}else _tprintf(TEXT("The long name for %s is %s\n"), buf, buffer);// Clean up the directory.success = RemoveDirectory(LONG_DIR_NAME);if (!success){// Handle an error condition.printf ("RemoveDirectory failed (%d)\n", GetLastError());return;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。