I was given a bulk batch of lyr files that were converted to lyrx files with paths to a file gdb that is no longer in operation. All of the feature classes I would like to redirect the the lyrx files to are on an Enterprise GDB which connects through an sde connection file housed on a networked server.
Any time I add a lyrx file to a map and change its data source, it only holds for that particular project. It also sets the source to a local drive temp path, even though I set its connection to the sde connection file. Is there any method to permanently change the data source of a lyrx file in bulk like in ArcCatalog, or through some python script?
This seems like a major ESRI oversight. Thanks for the help!
Solved! Go to Solution.
The thing is that your content is located on fileshare. We need to amend a bit your paths, therefore.
Also, it is better to create new files, instead of overwriting existinig ones. Simply, in case of a failure, these files may get corrupted.
Please check the following code. Hopefully, it works for you.
import arcpy import os filesDirectory = r"\\\\svgcisilon.path\\gis\\Mitigation" fileExt = r".lyrx" files = [os.path.join(filesDirectory, f) for f in os.listdir(filesDirectory) if f.endswith(fileExt)] for file in files: lyrFile = arcpy.mp.LayerFile(file) lyrFile.updateConnectionProperties(r"\\\\svgcisilon.path\\gis\\MitigationLayers\\MitigationBanks.gdb", r"\\\\svgcisilon.path\\gis\\email@example.com") lyrFile.saveACopy(file.split(".lyrx") + "SDE.lyrx")