递归式搜索所有目录
一般情况下,FileSystemMap 会在给定目录的所有文件上运行.
显示完整的 Wolfram 语言输入
In[2]:=
![Click for copyable input](assets.zh/recursively-search-through-directories/In_52.png)
Length[Keys[FileSystemMap[FileByteCount, dir]]]
Out[2]=
![](assets.zh/recursively-search-through-directories/O_43.png)
FileNameForms 允许在 FileSystemMap 中选择符合指定模式的文件.
In[3]:=
![Click for copyable input](assets.zh/recursively-search-through-directories/In_53.png)
FileSystemMap[FileByteCount, dir, FileNameForms -> "*en*"]
Out[3]=
![](assets.zh/recursively-search-through-directories/O_44.png)
In[4]:=
![Click for copyable input](assets.zh/recursively-search-through-directories/In_54.png)
FileSystemMap[FileByteCount, dir, FileNameForms -> "*en*"];
Length[Keys[%]]
Out[4]=
![](assets.zh/recursively-search-through-directories/O_45.png)
同时使用 FileSystemScan 和 FileNameForms,将所有文件名中含有 "Date" 的文件复制到新的目录.
显示完整的 Wolfram 语言输入
In[7]:=
![Click for copyable input](assets.zh/recursively-search-through-directories/In_57.png)
FileNames["*", targetDir]
Out[7]=
![](assets.zh/recursively-search-through-directories/O_46.png)
In[8]:=
![Click for copyable input](assets.zh/recursively-search-through-directories/In_58.png)
FileSystemScan[copy, docsDir, Infinity, FileNameForms -> "*Date*.nb"]
In[9]:=
![Click for copyable input](assets.zh/recursively-search-through-directories/In_59.png)
FileNames["*", targetDir]
Out[9]=
![](assets.zh/recursively-search-through-directories/O_47.png)
也可以使用 FileSystemScan 删除这些文件.
In[10]:=
![Click for copyable input](assets.zh/recursively-search-through-directories/In_60.png)
FileSystemScan[DeleteFile, targetDir]
In[11]:=
![Click for copyable input](assets.zh/recursively-search-through-directories/In_61.png)
FileNames["*", targetDir]
Out[11]=
![](assets.zh/recursively-search-through-directories/O_48.png)