span8
span4
我真的不知道,如果这是什么,FME可以做,但它已经做了很多事情,到目前为止一切就是想看看这可能是可能的!
我有“d:\数据”的目录,其具有包含来自地图层的数据多的文件夹(d:\数据\公园,d:\数据\建筑物,d:\数据\河流等)。
我所试图做的是自动化的这些子文件夹的内容(包括文件和多个文件夹)删除,但名称为“光栅”开始“数据”中的任何文件夹(例如我不 want to delete D:\data\raster_aerial2016 and all of its contents).
这是东西,FME Desktop就可以做什么?我没有在Python /批处理文件的经验和FME已经解决了很多问题,所以如果有任何变压器,可以帮助我只是想知道?
好问题。当然——我知道我说的是显而易见的——你一定要先测试你选择的技术(包括我的),然后再让它对你的真实数据产生影响。我不希望导致您的整个文件系统灰飞烟灭!
我的想法是,你可以使用“目录和文件路径名”读写器读取文件的列表,使用测试仪删除所有那些含有单词“光栅”,然后使用“文件/复制”的编剧移动剩余 files to the /dev/null equivalent for your operating system.
附件是一个工作区,显示技术。它搜索在C TXT文件:\ FMEOutput和在另一个文件夹移动到“NUL”。Windows不允许一个名为“NUL”,因此它被删除。
希望这可以帮助。
你好@cartochris,
我创建的工作区,你可以使用这个功能的一个小例子。它使用一个小的Python的脚本,列出父数据文件夹所有文件夹中。它通过循环清单和检查每个文件夹的名称。如果该文件夹不与“光栅”,一个功能创建(与文件夹的网址)开始,发送到将使用路径和RMDIR“PATH_TO_FOLDER”一个表面建模\ S \ q命令删除它和所有 files / folders inside it automatically.
你可能想删除\的Q上面,所以你将不得不删除文件夹之前进行确认的声明。
我不认为我必须指定该代码可以多么危险,如果父文件夹指向一个驱动器...因此,需要注意的使用!
在Python代码:
import fme import fmeobjects import glob class RemoveData(object): def __init__(self): self。parentUrl = 'D:/DATA/' def input(self,feature): # Don't do anything for every feature entering pass def close(self): # List all folders in the parentfolder (self.parentUrl) folders = glob.glob('{}{}'.format(self.parentUrl, '*') ) # Loop throught all returned folders for cFolder in folders: # Check if the name starts with 'raster' if cFolder.split('\\')[1][0:6] == 'raster': # Skip this folder continue # Create feature, add attribute, and send it to workspace newFeature = fmeobjects.FMEFeature() # Convert the slashes to windows-notation newFeature.setAttribute('url', '"{}"'.format(cFolder.replace('\\\\', '\\').replace('/', '\\'))) self.pyoutput(newFeature)
example-removingallsubfolders.fmw
希望这对你有帮助!
珀斯
你好@cartochris,据我所知,没有办法删除文件,除非你写一个脚本。但是,我认为您可以使用目录和文件路径名读取器和文件拷贝器将保存在“D:\data\raster_*”文件夹下的文件复制或移动到磁盘系统中的备份文件夹。一旦创建了备份,就很容易手动删除剩余文件。
我不认为在同一个磁盘驱动器中移动文件需要这么长的时间,因为它相当于重命名。但是,我不知道把一个文件移到“null”可以删除它。这将是一个很好的小费@ Mark2A亚搏在线tSafe建议。
无论如何,小心不要删除必要的文件。我总是在清理文件夹之前创建一个安全的备份,即使这会花费很长亚搏在线时间。
©2019安全亚搏在线软件公司|法律