MCPcopy Create free account
hub / github.com/ElementsProject/elements / GetChildren

Method GetChildren

src/leveldb/util/env_windows.cc:492–521  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

490 }
491
492 Status GetChildren(const std::string& directory_path,
493 std::vector<std::string>* result) override {
494 const std::string find_pattern = directory_path + "\\*";
495 WIN32_FIND_DATAW find_data;
496 auto wFind_pattern = toUtf16(find_pattern);
497 HANDLE dir_handle = ::FindFirstFileW(wFind_pattern.c_str(), &find_data);
498 if (dir_handle == INVALID_HANDLE_VALUE) {
499 DWORD last_error = ::GetLastError();
500 if (last_error == ERROR_FILE_NOT_FOUND) {
501 return Status::OK();
502 }
503 return WindowsError(directory_path, last_error);
504 }
505 do {
506 char base_name[_MAX_FNAME];
507 char ext[_MAX_EXT];
508
509 auto find_data_filename = toUtf8(find_data.cFileName);
510 if (!_splitpath_s(find_data_filename.c_str(), nullptr, 0, nullptr, 0,
511 base_name, ARRAYSIZE(base_name), ext, ARRAYSIZE(ext))) {
512 result->emplace_back(std::string(base_name) + ext);
513 }
514 } while (::FindNextFileW(dir_handle, &find_data));
515 DWORD last_error = ::GetLastError();
516 ::FindClose(dir_handle);
517 if (last_error != ERROR_NO_MORE_FILES) {
518 return WindowsError(directory_path, last_error);
519 }
520 return Status::OK();
521 }
522
523 Status DeleteFile(const std::string& filename) override {
524 auto wFilename = toUtf16(filename);

Callers

nothing calls this directly

Calls 3

OKFunction · 0.85
WindowsErrorFunction · 0.85
emplace_backMethod · 0.80

Tested by

no test coverage detected