fileSearch & fileRandom Limitations

03-15-2021 12:28 PM
Occasional Contributor III

I discovered today that fileSearch and fileRandom will not return a result if there is a space in the path.

For example print(fileRandom(/Project Name/*.*)) will not work but print(fileRandom(/DifferentProjectName/*.*)) does. I renamed my project but it broke a ton of references in other places. Is there a way to get around this limitation?   or chr(32)...something like that? 

2 Replies
Occasional Contributor III

It is incredible how much of rule design is just filename management. 

David Wasserman, AICP
0 Kudos
Esri Regular Contributor

This is actually not a bug.  Whitespace inside the searchQuery string in fileSearch/filesSearch indicates AND in the query.  Using whitespace, two or more queries can be AND-ed.  See the last example in the doc.

The same applies to other functions which use fileSearchassetApproxRatio, assetApproxSize, assetBestRatio, assetBestSize, assetFitSizefileRandomimageApproxRatioimageBestRatio

In order to put whitespace into a filepath, use single quotes:


filesSearch("'Wall Textures/*.png'")



Alternatively, the escape characters \s and \x20 also work to replace a space.  Note that an extra backslash is needed so the cga compiler interprets it correctly (instead of as a normal backslash).





0 Kudos