ich so etwas wie dieses bin mit:WIN32_FIND_DATA - Holen Sie sich den absoluten Pfad
std::string tempDirectory = "./test/*";
WIN32_FIND_DATA directoryHandle;
memset(&directoryHandle, 0, sizeof(WIN32_FIND_DATA));//perhaps redundant???
std::wstring wideString = std::wstring(tempDirectory.begin(), tempDirectory.end());
LPCWSTR directoryPath = wideString.c_str();
//iterate over all files
HANDLE handle = FindFirstFile(directoryPath, &directoryHandle);
while(INVALID_HANDLE_VALUE != handle)
{
//skip non-files
if (!(directoryHandle.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
//convert from WCHAR to std::string
size_t size = wcslen(directoryHandle.cFileName);
char * buffer = new char [2 * size + 2];
wcstombs(buffer, directoryHandle.cFileName, 2 * size + 2);
std::string file(buffer);
delete [] buffer;
std::cout << file;
}
if(FALSE == FindNextFile(handle, &directoryHandle)) break;
}
//close the handle
FindClose(handle);
die die Namen der einzelnen Dateien im relativen Verzeichnis ./test/*
druckt.
Gibt es eine Möglichkeit, den absoluten Pfad dieses Verzeichnisses zu ermitteln, so wie es unter Linux tut, ohne Bibliotheken von Drittanbietern wie BOOST einzubeziehen? Ich möchte den absoluten Pfad zu jeder Datei drucken.
Fragen Sie nach einem [UNC] (http://en.wikipedia.org/wiki/Uniform_Naming_Convention#Uniform_Naming_Convention) Pfad? –
Ich glaube nicht, dass ich eine solche allgemeine Lösung brauche. Der lokale Pfad sollte jetzt gut funktionieren (wie in C: \ bla \ blabla \ etc). –
Es gibt keine Garantie, dass es einen lokalen Pfad gibt. –