在 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 個文件,其中之一是“”,因此“”可能表示一個臨時文件,表明文件已被刪除。
這是 Mac 或 Big Sur 上 JSL/JMP 的已知行為嗎? 如何避免在計數和列表中包含“”項?
感謝您的輸入。

蘋果系統質量和工藝工程回复:在 Mac Big Sur 上 JSL 似乎檢測到指示刪除一個或多個文件的文件謝謝你標記我, @Craige_Hales 。 我可以確認這是 JMP 中的一個錯誤,與 Mac 上出現的不可見 .DS_Store 文件相關,該文件用於存儲文件夾的歷史信息。 我還可以確認該問題已在 JMP 17 中得到解決,該版本將在幾個月後發布。 感謝您提供了很好的解決方法!
回复:在 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 似乎檢測到指示刪除一個或多個文件的文件聽起來像是一個錯誤,可能是在 JMP 中。 作為解決方法,未經測試的代碼(這裡沒有 Mac):
x = {"a", "b", "", "c"};
Show( x );
y = Filter Each( {filename}, x, filename != "" );
Show( y );
x = {"a", "b", "", "c"};
y = {“a”,“b”,“c”};
@奧黛麗_舒爾