我发现上面提到的SystemCaller Transformer杰罗恩斯蒂尔斯对文件系统操作非常有用:如果您可以在命令窗口中进行操作,你可以用FME来做!
你好,
对,使用FileCopy Writer将所需文件复制到另一个文件夹,如e:\data到e:\data1,并删除普通窗口中的e:\data文件夹是最佳选择。
普拉塔普
我的想法是你可以用“目录和文件路径名”阅读器来读取文件列表,使用测试仪除去包含单词“graster”的所有文件,然后使用“file/copy”编写器将其余文件移动到与您的操作系统等效的/dev/null。
附件是一个显示该技术的工作区。它在C:\fmeoutput中搜索txt文件,并将其移动到另一个文件夹中的“nul”。Windows不允许一个名为“nul”的文件,所以它被删除了。
希望这有帮助。
您好!卡通地图,
我创建了一个可以用于此功能的工作区的小示例。它确实使用了一个小的python脚本,该脚本列出了父数据文件夹中的所有文件夹。它循环浏览这个列表并检查每个文件夹的名称。如果文件夹不是以“光栅”开头,创建一个功能(使用文件夹的URL)并发送给系统调用者,该调用者将使用路径和rmdir“path \u to \u folder \s \q命令自动删除该功能及其内的所有文件/文件夹。
您可能希望删除上面语句中的\q,因此在删除文件夹之前必须确认。
如果父文件夹指向驱动器,我不需要指定此代码有多危险…所以小心使用!
PythonCode:
import fmeimport fmeobjectsimport globalclass removedata(object):def u init_uuuuu(self):self.parenturl='d:/data//def input(self,feature):对于输入pass def close(self):列出parentfolder(self.parenturl)folders=glob.glob(“”)中的所有文件夹,不要为每个功能执行任何操作。rmat(self.parenturl,“*”)循环浏览文件夹中的cFolder的所有返回文件夹:检查名称是否以“graster”开头,如果是cFolder.split(“\”)[1][0:6]=“graster”:跳过此文件夹继续创建功能,添加属性,并将其发送到工作区newfeature=fmeobjects.fmefeature()35;将斜杠转换为Windows符号newfeature.setattribute('url','“”'。格式(cFolder.Replace('\\','\').replace('/','\'))self.pyoutput(新功能)
希望这对你有帮助!
耶罗恩
您好!卡通地图,据我所知,除非编写脚本,否则无法删除文件。然而,我认为您可以使用目录和文件路径名读卡器和文件复制写入器将保存在“d:\data\graster_*”文件夹下的文件复制或移动到磁盘系统中的备份文件夹。创建备份后,手动删除残余文件很容易。