取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
选择语言 隐藏翻译栏
查看原发布的话题

Rename File() 和 Copy File() 均返回 0

TheSource
Level II

你好,


我需要将一个小型数据表保存为 csv,但使用备用文件扩展名(*.blkl 而不是 *.csv)。据我所知,Save As() 函数似乎不允许这样的规定,因此我没有使用我想要的文件名保存文件,而是将其保存为 *.blkl.csv,然后尝试直接将该文件重命名为所需的名称或执行复制+删除序列以获取所需的输出文件。


我的脚本会顺利地保存文件,但 Rename File() 和 Copy File() 函数均返回 0,表示操作失败,且未提供其他信息。我该如何调试失败的文件操作?


JMP 14.3.0(64 位)
Windows 11 企业版(64 位)


提前致谢!

这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。

4 条回复4
jthi
Super User

回复:重命名文件()和复制文件()都返回 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"));

这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。

txnelson
Super User

回复:重命名文件()和复制文件()都返回 0

我验证了 Jarmo 的代码在 JMP 14 中有效

这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。

TheSource
Level II

回复:重命名文件()和复制文件()都返回 0

我找到了问题所在。如果文件存在,Rename File() 和 Copy File() 都会失败,因此它们不适合单独进行覆盖操作。我添加了删除预检查,现在一切都运行顺利。


供将来参考,jsl 库函数是否在任何地方报告此类调试信息,还是仅仅是通过/失败状态?

这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。

jthi
Super User

回复:重命名文件()和复制文件()都返回 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");

undefined

然后你就可以记录下来

This file could not be saved with the given name.

Unable to save file.

这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。