Windows系统C语言获取文件夹来的所有文件名的方法
生活随笔
收集整理的這篇文章主要介紹了
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;} }?
總結
以上是生活随笔為你收集整理的Windows系统C语言获取文件夹来的所有文件名的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多线程编程之线程同步主要函数一览
- 下一篇: Linux系统编程之Vim使用小技巧--