mirror of
https://github.com/reactos/reactos.git
synced 2025-04-20 04:20:46 +00:00
![]() - First, the option and the APIs called by it can work directly on paths relative to the current directory. So there is no need to call GetFullPathName(), with the risk of going over MAX_PATH if the current path is quite long (or nested) but the RMDIR is called on a (short-length) relative sub-directory. - Append a path-separator (backslash), only if the specified directory does not have one already, and, that it does not specify a current directory via the "drive-root" method, e.g. "C:" without any trailing backslash. - In case there are errors during deletion of sub-directories or sub-files, print the error but continue deleting the other sub-dirs or files. - Monitor the Ctrl-C breaker as well, and stop deleting if it has been triggered. - When removing file/directory read-only attribute, just remove this attribute, but keep the other ones. - When deleting the directory, first try to do it directly; if it fails with access denied, check whether it was read-only, and if so, remove this attribute and retry deletion, otherwise fails. - When recursively deleting a drive root directory, ultimately resolve the dir pattern and check whether it's indeed a drive root, e.g. "C:\\", and if so, just return success. Indeed, calling RemoveDirectory() on such drive roots will return ERROR_ACCESS_DENIED otherwise, but we want to succeed even if, of course, we won't actually "delete" the drive root. |
||
---|---|---|
.. | ||
cmd | ||
explorer | ||
filebrowser | ||
progman | ||
rshell | ||
CMakeLists.txt |