如何从代码中删除文件?

时间:2015-11-13 08:14:07

标签: file axapta delete-file dynamics-ax-2012 x++

我必须从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中)。

是否存在权限问题?

1 个答案:

答案 0 :(得分:4)

您仍然可以通过thisMYFile变量打开文件 在尝试删除文件之前将其设置为null

...
perm = new FileIoPermission(fileOpen, 'w');
perm.assert();

thisMYFile = new CommaTextIo(fileOpen , 'w');
// Do stuff
thisMYFile = null;

WinApi::deleteFile(fileOpen);
...