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;
}

 

posted @ 2020-09-18 12:15  一口一个小馒头  阅读(156)  评论(0编辑  收藏  举报