我必须从X ++代码中删除文件。
我在我的方法中使用了这段代码:
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
{}
}
Value fileOpen是: C:\ Users \ myUserName \ Desktop \ myFolder \ myFile.csv 。
我可以阅读并填写表格,但是当我必须删除它时,
会出错赶上(例外:: CLRError)
(在classes \ WinAPI \ DeleteFile中)。
是否存在权限问题?
答案 0 :(得分:4)
您仍然可以通过thisMYFile
变量打开文件
在尝试删除文件之前将其设置为null
:
...
perm = new FileIoPermission(fileOpen, 'w');
perm.assert();
thisMYFile = new CommaTextIo(fileOpen , 'w');
// Do stuff
thisMYFile = null;
WinApi::deleteFile(fileOpen);
...