在 Mac Big Sur JSL 似乎检测到一个指示删除一个或多个文件的文件你好,
我对 JSL 检测到已删除文件感到困惑(Mac Big Sur 11.6.8 上的 JMP 16.0.0)。 我创建了一个包含 8 个文件的文件夹并运行以下脚本:
Names Default To Here( 1 );
TargetDir = Pick Directory();
TargetFiles = Files In Directory( TargetDir );
N_TargetFiles = N items(TargetFiles);
show(N_TargetFiles);
For( i = 1, i <= N Items( TargetFiles ), i++,
sample = Left( TargetFiles[i], Contains( TargetFiles[i], "." ) - 1 );
Show( sample );
);
日志表明检测到 8 个文件(见附件,第一次运行)。 然后我删除了文件夹中的一个文件并再次运行脚本。 日志仍然表明存在 8 个文件,并且它包含一个“”,表示一个已被删除(见附件,第二次运行)。 如果我从 8 个文件重新开始并删除 6 个,则检测到 3 个,其中一个是“”,所以可能“”表示一个临时文件,表示文件已被删除。
这是 JSL/JMP 在 Mac 或 Big Sur 上的已知行为吗? 如何避免在计数和列表中包含“”项?
感谢您的输入。

苹果系统脚本回复:在 Mac Big Sur JSL 似乎检测到一个文件,表明删除了一个或多个文件听起来像一个错误,也许在 JMP 中。 作为一种解决方法,未经测试的代码(这里没有 Mac):
x = {"a", "b", "", "c"};
Show( x );
y = Filter Each( {filename}, x, filename != "" );
Show( y );
x = {“a”、“b”、“”、“c”};
y = {"a", "b", "c"};
@Audrey_Shull
回复:在 Mac Big Sur JSL 似乎检测到一个文件,表明删除了一个或多个文件非常感谢您的帮助。 我发现这个神秘文件是一个隐藏的 .DS_Store 文件,当一个或多个文件被删除时,它占据了一个 Mac 目录,我使用终端在我的目录中确认了这一点ls -a显示隐藏文件。 我在之前的脚本中重命名了文件列表,然后修改了您建议的语法以过滤掉 .DS_Store 文件(请参阅蓝色的下面的脚本)。 该脚本正确计算文件并避免神秘的“”文件。
目标是在包含目标文件的选定文件夹上自动处理文件。 我正在通过另一种方法仅选择具有所需 .txt 扩展名的文件,这也可能排除目录中的其他“污染”文件,但由于您的建议有效,我可能会继续使用它。
我会将此称为 Mac 错误而不是 JMP 错误,但我认为这是有争议的。
Names Default To Here( 1 );
TargetDir = Pick Directory();
Files = Files In Directory( TargetDir );
<FONT color="#0000FF">TargetFiles = Filter Each( {filename}, Files, filename != ".DS_Store" );</FONT>
N_TargetFiles = N Items( TargetFiles );
Show( N_TargetFiles );
For( i = 1, i <= N Items( TargetFiles ), i++,
sample = Left( TargetFiles[i], Contains( TargetFiles[i], "." ) - 1 );
Show( sample );
);
回复:在 Mac Big Sur JSL 似乎检测到一个文件,表明删除了一个或多个文件谢谢你给我加标签, @Craige_Hales . 我可以确认这是 JMP 中的一个错误,与出现在 Mac 上用于存储文件夹历史信息的不可见 .DS_Store 文件有关。 我还可以确认它已在 JMP 17 中得到解决,它将在几个月后发布。 感谢您提供很好的解决方法!