Index: src/libchcore/TSubTaskCopyMove.cpp =================================================================== diff -u -N -r980c1a0de537813728871676200a0960410b11fb -r6b927672a652279a203f6465ead20ffb9fe6bde1 --- src/libchcore/TSubTaskCopyMove.cpp (.../TSubTaskCopyMove.cpp) (revision 980c1a0de537813728871676200a0960410b11fb) +++ src/libchcore/TSubTaskCopyMove.cpp (.../TSubTaskCopyMove.cpp) (revision 6b927672a652279a203f6465ead20ffb9fe6bde1) @@ -38,7 +38,6 @@ #include "TScopedRunningTimeTracker.h" #include "TFeedbackHandlerWrapper.h" #include "TOverlappedMemoryPool.h" -#include "TOverlappedDataBuffer.h" #include "RoundingFunctions.h" #include "TTaskConfigBufferSizes.h" #include "TFileException.h" @@ -349,8 +348,8 @@ bool bNoBuffer = (GetTaskPropValue(rConfig) && pData->spSrcFile->GetLength64() >= GetTaskPropValue(rConfig)); - IFilesystemFilePtr fileSrc = spFilesystem->CreateFileObject(pData->spSrcFile->GetFullFilePath(), bNoBuffer); - IFilesystemFilePtr fileDst = spFilesystem->CreateFileObject(pData->pathDstFile, bNoBuffer); + IFilesystemFilePtr fileSrc = spFilesystem->CreateFileObject(IFilesystemFile::eMode_Read, pData->spSrcFile->GetFullFilePath(), bNoBuffer); + IFilesystemFilePtr fileDst = spFilesystem->CreateFileObject(IFilesystemFile::eMode_Write, pData->pathDstFile, bNoBuffer); TFilesystemFileFeedbackWrapperPtr spSrcFileWrapper(std::make_shared(fileSrc, spFeedbackHandler, GetContext().GetLogFileData(), rThreadController, spFilesystem)); TFilesystemFileFeedbackWrapperPtr spDstFileWrapper(std::make_shared(fileDst, spFeedbackHandler, GetContext().GetLogFileData(), rThreadController, spFilesystem)); @@ -402,19 +401,8 @@ unsigned long long ullProcessedSize = m_spSubTaskStats->GetCurrentItemProcessedSize(); // first open the source file and handle any failures - TSubTaskCopyMove::ESubOperationResult eResult = rSrcFile.OpenSourceFileFB(); - if(eResult != TSubTaskBase::eSubResult_Continue) - return eResult; - else if(!rSrcFile.IsOpen()) - { - // invalid handle = operation skipped by user - AdjustProcessedSizeForSkip(pData->spSrcFile); + TSubTaskCopyMove::ESubOperationResult eResult = eSubResult_Continue; - pData->bProcessed = false; - bSkip = true; - return TSubTaskBase::eSubResult_Continue; - } - // update the source file size (it might differ from the time this file was originally scanned). // NOTE: this kind of update could be also done when copying chunks of data beyond the original end-of-file, // but it would require frequent total size updates and thus - serializations).