Rename File() 和 Copy File() 均返回 0你好,
我需要将一个小型数据表保存为 csv,但使用备用文件扩展名(*.blkl 而不是 *.csv)。据我所知,Save As() 函数似乎不允许这样的规定,因此我没有使用我想要的文件名保存文件,而是将其保存为 *.blkl.csv,然后尝试直接将该文件重命名为所需的名称或执行复制+删除序列以获取所需的输出文件。
我的脚本会顺利地保存文件,但 Rename File() 和 Copy File() 函数均返回 0,表示操作失败,且未提供其他信息。我该如何调试失败的文件操作?
JMP 14.3.0(64 位)
Windows 11 企业版(64 位)
提前致谢!
视窗回复:重命名文件()和复制文件()都返回 0你是想怎么做的?对我来说,这个方法很好用(使用 JMP18)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Save("$TEMP/bigclass.csv");
Show(File Exists("$TEMP/bigclass.csv"), File Exists("$TEMP/bigclass.blkl"));
Rename File("$TEMP/bigclass.csv", "bigclass.blkl");
Show(File Exists("$TEMP/bigclass.csv"), File Exists("$TEMP/bigclass.blkl"));
回复:重命名文件()和复制文件()都返回 0我验证了 Jarmo 的代码在 JMP 14 中有效
回复:重命名文件()和复制文件()都返回 0我找到了问题所在。如果文件存在,Rename File() 和 Copy File() 都会失败,因此它们不适合单独进行覆盖操作。我添加了删除预检查,现在一切都运行顺利。
供将来参考,jsl 库函数是否在任何地方报告此类调试信息,还是仅仅是通过/失败状态?
回复:重命名文件()和复制文件()都返回 0有些函数可能会给你更多的反馈。例如,如果你尝试覆盖已经打开的数据表
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Save("$TEMP/bigclass_test.jmp");
dt1 = Open("$SAMPLE_DATA/Big Class Families.jmp");
dt1 << Save("$TEMP/bigclass_test.jmp");

然后你就可以记录下来
This file could not be saved with the given name.
Unable to save file.