Start find directory
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user