For decades, whenever I do FolderItem.Delete (on a unlocked Visible existing file, of course), the FolderItem object stays legitimate and becomes a “promised” FolderItem. The Name still exists, it still has a Parent FolderItem - it’s just Exist=False. I then can do a BinaryStream.Create(f, true) to write the file again. This is my common method of replacing a file. (Please don’t comment on alternative ways, I know there are better ways of doing this)
I had an instance where this doesn’t happen. MacOS 10.14. Just a particular file. I do f.Delete and although the object isn’t Nil, it loses a lot of it’s properties. I can’t even do a BinaryStream(f, true) on it - I get a IOException on it.