Как распечатать имя файла и размер файла на экране консоли
Кажется, я уже близко. Когда я пытаюсь это сделать
"filename = file[i];"Я получаю ошибку.
|51|error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(std::vector<std::__cxx11::basic_string<char> >&)'|
Что я уже пробовал:
#include <windows.h> #include <iostream> #include <fstream> #include <string> #include <sys/types.h> #include <dirent.h> #include <errno.h> #include <vector> using namespace std; int getdir (string dir, vector<string> &files) { DIR *dp; struct dirent *dirp; if((dp = opendir(dir.c_str())) == NULL) { cout << "Error(" << errno << ") opening " << dir << endl; return errno; } while ((dirp = readdir(dp)) != NULL) { files.push_back(string(dirp->d_name)); } closedir(dp); } long fileLength (const char * name); __int64 FileSize(std::string name); const char * filename; int main() { std::ofstream outputFile; outputFile.open("Files.txt"); string dir = string("."); vector<string> files = vector<string>(); getdir(dir,files); for (unsigned int i = 0;i < files.size();i++) { filename = file[i]; //issue here cout << files[i] <<"Size of " << filename << " is " << FileSize(filename) << " bytes." << endl; } ifstream file (filename, ios::in|ios::binary); file.seekg (0, ios::end); return file.tellg(); return 0; } long fileLength (const char * name) { } __int64 FileSize(std::string name) { HANDLE hFile = CreateFile(name.c_str(), GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile==INVALID_HANDLE_VALUE) return -1; // error condition, could call GetLastError to find out more LARGE_INTEGER size; CloseHandle(hFile); return size.QuadPart; }