【问题标题】:How to open/operate file in batch classes?如何在批处理类中打开/操作文件?
【发布时间】:2015-11-19 20:59:00
【问题描述】:

我必须从文件(例如 csv)中导入表格。 我使用了这段代码:

public void run ()
{ 
    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');
}

但在 Debug 中,class IO thisMYFilenull,因此我无法读取和获取信息。

在我的 class declaration 中,我扩展了 RunBaseBarch

如果我使用“普通”类(不是批处理),我可以读取、写入、移动文件等,但现在我无法打开。

我知道WinAPI 类不能批量工作,现在我认为还有另一种批量读取/打开文件的方法?使用WinAPIServerclass 我可以 findFirstFile 吗? 澄清一下,如果我不安排进程批处理,我也会遇到同样的问题:在批处理对话框中标记 批处理false,然后只单击“确定”。 (示例图片)

如果您有教程、任何建议或帮助,

谢谢大家,

享受吧!

【问题讨论】:

  • “文件夹”从未被赋值,所以您在\?中寻找文件对吗?
  • 你能举个例子吗?非常感谢!

标签: batch-processing axapta readfile dynamics-ax-2012 x++


【解决方案1】:

请注意批处理在另一台机器上运行,AOS 将无法访问您的本地文件。
因此,请始终对文件使用完整的UNC file path,例如。 \\MyHost\Temp\x.csv

如果new CommaTextIO打开文件失败,返回null,不抛出异常。如果您不测试null,您的代码稍后会失败。

【讨论】:

  • 另外,如果不在您自己的服务器上操作,文件夹权限。我 90% 的与 *io -imports/exports 相关的故障排除与客户环境中更改的文件夹权限有关。
  • 你能用一些例子解释一下吗?非常好!
  • 嗨@Jan B. Kjeldsen 好方法。
猜你喜欢
  • 1970-01-01
  • 2013-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-24
  • 2011-10-21
  • 2017-12-10
相关资源
最近更新 更多