Index: src/libchcore/TSubTaskCopyMove.cpp =================================================================== diff -u -N -rdb818324a61602e118506ca8b3973e44d997c8de -r3be63f912be8157e7f1dc2dad443237dce1efa7c --- src/libchcore/TSubTaskCopyMove.cpp (.../TSubTaskCopyMove.cpp) (revision db818324a61602e118506ca8b3973e44d997c8de) +++ src/libchcore/TSubTaskCopyMove.cpp (.../TSubTaskCopyMove.cpp) (revision 3be63f912be8157e7f1dc2dad443237dce1efa7c) @@ -194,8 +194,9 @@ // if moving - delete file (only if config flag is set) if(bMove && spFileInfo->IsProcessed() && !GetTaskPropValue(rConfig)) { - if(!GetTaskPropValue(rConfig)) + if(spFileInfo->IsReadOnly() && !GetTaskPropValue(rConfig)) spFilesystem->SetAttributes(spFileInfo->GetFullFilePath(), FILE_ATTRIBUTE_NORMAL); + spFilesystem->DeleteFile(spFileInfo->GetFullFilePath()); // there will be another try later, so we don't check // if succeeded } @@ -575,7 +576,7 @@ // NOTE: probably should be removed from here and report problems with read-only files // directly to the user (as feedback request) if(!GetTaskPropValue(rConfig)) - SetFileAttributes(pData->pathDstFile.ToString(), FILE_ATTRIBUTE_NORMAL); + spFilesystem->SetAttributes(pData->pathDstFile, FILE_ATTRIBUTE_NORMAL); // open destination file, handle the failures and possibly existence of the destination file unsigned long long ullSeekTo = ullProcessedSize;