Reputation: 1581
I have to delete a File from X++ code.
I used this code in my method :
TextIO textIO;
str filename, fileOpen, folder;
int handle;
Io thisMYFile;
FileIoPermission perm;
#File
#avifiles
#OCCRetryCount
[handle, filename] = WINAPI::findFirstFile(folder + "\\*.csv");
fileOpen = strFmt (folder + "\\" + filename);
perm = new FileIoPermission(fileOpen, 'w');
perm.assert();
thisMYFile = new CommaTextIo(fileOpen , 'w');
WinApi::deleteFile(fileOpen);
}
}
catch
{}
}
The Value fileOpen is : C:\Users\myUserName\Desktop\myFolder\myFile.csv .
I can read and fill the table, but when I have to delete it, it errors with the
catch(Exception::CLRError)
(in classes\WinAPI\DeleteFile).
Is there a permission problem ?
Upvotes: 2
Views: 6166
Reputation: 35368
You still have the file open via your thisMYFile
variable.
Set it to null
before trying to delete the file:
...
perm = new FileIoPermission(fileOpen, 'w');
perm.assert();
thisMYFile = new CommaTextIo(fileOpen , 'w');
// Do stuff
thisMYFile = null;
WinApi::deleteFile(fileOpen);
...
Upvotes: 4