AX2012 fileExists
最近做了一个项目,有涉及到文件读取写入等,需要用batch去执行。
在SIT的时候发现在client端执行没有任何问题,但是在server端执行就会报错,原因是WinAPI::fileExists(_fileName)这个方法是只能在client端执行。
所以我们需要在代码里面判断一下执行的环境,如果是在server端运行的话就需要用到WinAPIServer::fileExists(_fileName)
public static boolean fileExists(str _fileName) { FileIOPermission filePermission, newFilePermission; Set permissionSet; boolean fileExist = false; ; permissionSet = new Set(Types::Class); permissionSet.add(new InteropPermission(InteropKind::ClrInterop)); permissionSet.add(new FileIOPermission(_fileName , 'rw')); CodeAccessPermission::assertMultiple(permissionSet); if (isRunningOnServer()) { if (WinAPIServer::fileExists(_fileName)) { fileExist = true; } } else { if (WinAPI::fileExists(_fileName)) { fileExist = true; } } CodeAccessPermission::revertAssert(); return fileExist; }