21xrx.com
2024-11-10 00:30:04 Sunday
登录
文章检索 我的文章 写文章
C++代码:列出当前目录下所有文件
2023-07-02 22:25:19 深夜i     --     --
C++ 当前目录 列出文件

在使用C++进行文件操作时,我们通常需要先浏览当前目录下的所有文件,以便对文件进行读写等操作。本文将演示如何使用C++代码列出当前目录下的所有文件。

步骤一:获取当前目录的路径

获取当前目录的路径是列出当前目录下所有文件的第一步。在Windows操作系统中,我们可以使用_getcwd函数获取当前目录的绝对路径。


#include <direct.h>

#include <iostream>

#include <string>

using namespace std;

int main() {

 char* dir;

 dir = _getcwd(NULL, 0);

 if (dir == NULL) {

  perror("_getcwd error");

 }

 else {

  string currentDir(dir);

  cout << "当前目录路径:" << currentDir << endl;

 }

 return 0;

}

步骤二:遍历当前目录下的所有文件

通过调用Windows API函数FindFirstFile和FindNextFile,我们可以逐一遍历当前目录下的所有文件。以下是一个例子:


#include <windows.h>

#include <iostream>

#include <string>

using namespace std;

int main() {

 char* dir;

 dir = _getcwd(NULL, 0);

 if (dir == NULL) {

  perror("_getcwd error");

 }

 else {

  string currentDir(dir);

  cout << "当前目录路径:" << currentDir << endl;

  HANDLE hFind;

  WIN32_FIND_DATAA FindFileData;

  string filename;

  hFind = FindFirstFileA("*.*", &FindFileData);

  if (hFind == INVALID_HANDLE_VALUE)

   cout << "查找失败!" << endl;

   return -1;

  

  cout << "文件列表:" << endl;

  do {

   if (FindFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)

    cout << "<dir> " << FindFileData.cFileName << endl;

   

   else

    cout << FindFileData.cFileName << endl;

   

  } while (FindNextFileA(hFind, &FindFileData));

  FindClose(hFind);

 }

 return 0;

}

通过使用上述代码,我们可以列出当前目录下的所有文件和目录,并对其进行进一步的文件操作。

总结

在C++中,获取当前目录路径并遍历当前目录下的所有文件是文件操作的重要步骤。通过编写上述代码,我们可以轻松地实现这些操作,并可自由地对当前目录中的任何文件进行读写操作。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复