1
0
This commit is contained in:
Scott E. Graves
2017-04-12 18:29:10 -05:00
parent 74437dde15
commit 43f62e01c8
2 changed files with 15 additions and 9 deletions

View File

@@ -74,6 +74,8 @@ std::vector<SString> CSiaApi::_CSiaFileTree::QueryDirectories(SString rootFolder
auto fileList = GetFileList();
CSiaFileCollection col;
rootFolder.Replace("/", "\\");
if (!rootFolder.BeginsWith('\\'))
rootFolder = '\\' + rootFolder;
std::vector<SString> ret;
std::for_each(fileList->begin(), fileList->end(), [&](const CSiaFilePtr& v)
@@ -81,7 +83,7 @@ std::vector<SString> CSiaApi::_CSiaFileTree::QueryDirectories(SString rootFolder
SString path = ("\\" + FilePath(v->GetSiaPath()).RemoveFileName()).Replace("/", "\\");
if (path.BeginsWith(rootFolder))
{
path = (rootFolder == "\\") ? path.SubString(1) : path.SubString(1, rootFolder.Length());
path = (rootFolder == "\\") ? path.SubString(1) : path.SubString(rootFolder.Length() + 1);
if (path.Length())
{
auto splitPaths = path.Split('\\');

View File

@@ -1471,6 +1471,13 @@ private:
}
}
}
else if (createDisposition == OPEN_EXISTING)
{
if (!cacheFilePath.IsDirectory())
{
ret = STATUS_NOT_FOUND;
}
}
if (ret == STATUS_SUCCESS)
{
@@ -1715,8 +1722,8 @@ private:
findFile.Append(fileName);
if (dokanFileInfo->IsDirectory)
{
siaDirQuery = siaFileQuery;
siaFileQuery += L"/*.*";
siaDirQuery = findFile;
findFile.Append("*");
}
}
@@ -2272,7 +2279,7 @@ private:
// if open with FILE_FLAG_DELETE_ON_CLOSE
if (dokanFileInfo->IsDirectory)
{
filePath.RemoveDirectory();
while (!filePath.RemoveDirectory());
}
else
{
@@ -2337,13 +2344,10 @@ private:
}
}
while ((ret == STATUS_SUCCESS) && (::FindNextFile(findHandle, &findData) != 0));
if (ret != STATUS_DIRECTORY_NOT_EMPTY)
DWORD error = ::GetLastError();
if ((ret != STATUS_DIRECTORY_NOT_EMPTY) && (error != ERROR_NO_MORE_FILES))
{
DWORD error = ::GetLastError();
if (error != ERROR_NO_MORE_FILES)
{
ret = DokanNtStatusFromWin32(error);
}
ret = DokanNtStatusFromWin32(error);
}
::FindClose(findHandle);