You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
there doesn't seem to be a way to rename files in MemFS without copying them around. Looks like MemFS tries to apply os.rename() if the file can be seen by the OS (which is not the case for MemFS). The only remaining way is to use something like fs.move that duplicates the file before removing the old one. On systems with limited memory this obviously doesn't work. Example: a MemFS with a total size of 10 GB and a single file of 8 GB lying on it. How to rename this file?
The text was updated successfully, but these errors were encountered:
https://docs.pyfilesystem.org/en/latest/guide.html#moving-and-copying says "These move and copy methods are optimized where possible, and depending on the implementation, they may be more performant than reading and writing files.". However it looks like MemFS doesn't have optimised move or movedir methods and instead just drops through to the base fs.move, which as you note does a copy-then-delete.
I'm not familiar enough with the MemFS to know if there's a good reason why it doesn't provide optimised move / movedir methods though (and I don't have time to look into it ATM). But feel free to experiment and put a PR together... 😉
Hi,
there doesn't seem to be a way to rename files in MemFS without copying them around. Looks like MemFS tries to apply
os.rename()
if the file can be seen by the OS (which is not the case for MemFS). The only remaining way is to use something likefs.move
that duplicates the file before removing the old one. On systems with limited memory this obviously doesn't work. Example: a MemFS with a total size of 10 GB and a single file of 8 GB lying on it. How to rename this file?The text was updated successfully, but these errors were encountered: