ID:2890880
 
Resolved
Deleting a client-side savefile didn't work if it had already been read in the same session.
BYOND Version:514
Operating System:Windows 10 Pro 64-bit
Web Browser:Firefox 56.0
Applies to:Dream Seeker
Status: Resolved (515.1615)

This issue has been resolved.
Descriptive Problem Summary:
514.1589, stable as time of writing.
As title explains, calling client.Export() will not delete, not even empty the file at least.
Numbered Steps to Reproduce Problem:
1. Export a savefile with some data on it.
2. Import it to see that everything's fine.
3. Call client.Export().
4. Import it and see that nothing has changed, the savefile still contains data/exists.
Code Snippet (if applicable) to Reproduce Problem:
/world/hub = "Exadv1.spacestation13"

/client/verb/get_savefile()
set name = "get savefile"

var/savefile/S = new(Import())
var/txtfile = file("test.txt")
fdel(txtfile)
S.ExportText(S, txtfile)

/client/verb/empty_savefile()
set name = "empty savefile"

Export()

/client/verb/create_savefile()
set name = "create savefile"

var/savefile/S = new()
S["deleted"] << 1
Export(S)


Expected Results:
A file deletion.
Actual Results:
Nothing changes.
Does the problem occur:
Every time? Or how often?
Every time.
In other games?
Quite possibly? The example contains a snippet that will show that it fails even at an empty environment.
In other user accounts?
Probably, untested.
On other computers?
Untested.
When does the problem NOT occur?
There is no situation where the problem does not occur, at most you can clear the file by using the (create_savefile()) on the example.
Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)
I am not aware whether this proc has worked the correct way before.
Workarounds:
Perform as the example (create_savefile()) does, it will not delete the file, but at least it will clear it for you.
The numbered steps you listed aren't actually in sync at all with the code snippet, so it isn't clear what process you're actually following or if there's anything wrong with it.
I'll try to represent it on the reply
create_savefile()
get_savefile()
check the test file
empty_savefile()
get_savefile()
check the test file, again
Lummox JR resolved issue with message:
Deleting a client-side savefile didn't work if it had already been read in the same session.