1
0

Start find directory

This commit is contained in:
Scott E. Graves
2017-03-03 00:11:03 -06:00
parent 77f5c6797d
commit aa7999393d
3 changed files with 59 additions and 2 deletions

View File

@@ -352,11 +352,41 @@ private:
if (siaFileTree)
{
String siaQuery = CSiaApi::FormatToSiaPath(PathSkipRoot(FileName));
String dirQuery = siaQuery;
if (::PathIsDirectory(FileName))
{
siaQuery += L"/*.*";
dirQuery = siaQuery;
}
else
{
String dir = FileName;
::PathRemoveFileSpec(&dir[0]);
dirQuery = dir + L"/*.*";
}
auto dirList = siaFileTree->QueryDirectories(dirQuery);
for (auto& dir : dirList)
{
WIN32_FIND_DATA fd = { 0 };
wcscpy_s(fd.cFileName, dir.c_str());
fd.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY;
FillFindData(&fd, DokanFileInfo);
}
auto fileList = siaFileTree->Query(siaQuery);
for (auto& file : fileList)
{
WIN32_FIND_DATA fd = { 0 };
wcscpy_s(fd.cFileName, PathFindFileName(file->GetSiaPath().c_str()));
LARGE_INTEGER li = { 0 };
li.QuadPart = file->GetFileSize();
fd.nFileSizeHigh = li.HighPart;
fd.nFileSizeLow = li.LowPart;
fd.dwFileAttributes = FILE_ATTRIBUTE_ARCHIVE | FILE_ATTRIBUTE_NORMAL;
FillFindData(&fd, DokanFileInfo);
}