Message104482
The whole error handling in rmtree strikes me as something that cannot be used efficiently. (see also #7969).
How can you decide in an isolated function, that can be called anywhere in the tree you want to remove, the proper thing to do ? You don't know the global status of what is going on.
I think rmtree() should drop these onerror calls and have two different behaviors:
1/ remove all it can in the tree, and return a list of files it couldn't remove, with the error for each file. The developer can then act upon.
2/ analyze the tree to see if the full removal can be done. If it's possible, it does it, if not, it doesn't do anything and return the problems.
For 2/ a possible way to do it could be to copy in a temporary place files that are being removed and copy them back in place in case a problem occurs. This can be long and space consuming though, for big files and big trees. I am not 100% sure 2/ is really useful though... |
|
| Date |
User |
Action |
Args |
| 2010-04-29 08:26:14 | tarek | set | recipients:
+ tarek, r.david.murray, rubenlm |
| 2010-04-29 08:26:13 | tarek | set | messageid: <[email protected]> |
| 2010-04-29 08:26:11 | tarek | link | issue8523 messages |
| 2010-04-29 08:26:10 | tarek | create | |
|