If you were interested in doing this as a Python Toolbox, here is another way to do the same functionality as listed above.
import arcpy
import os
import sys
global layerList
global dataLocation
class Toolbox(object):
def __init__(self):
self.label = "Folder Toolbox"
self.alias = "folders"
# List of tool classes associated with this toolbox
self.tools = [findFolders]
class findFolders(object):
def __init__(self):
self.label = "Finds Layer Files"
self.description = "This tool will find layer files in a folder and will update that folder with those files."
def getParameterInfo(self):
#Define parameter definitions
# Input Features parameter
in_workspace = arcpy.Parameter(
displayName="Input Workspace",
name="in_workspace",
datatype="DEFolder",
parameterType="Required",
direction="Input")
# Sinuosity Field parameter
layers = arcpy.Parameter(
displayName="Layers",
name="layers",
datatype="String",
parameterType="Optional",
direction="Input",
multiValue = True)
parameters = [in_workspace, layers]
return parameters
def isLicensed(self): #optional
return True
def updateParameters(self, parameters): #optional
if parameters[0].altered:
global layerList
global dataLocation
path = str(parameters[0].value)
layerList = []
dataLocation = []
for root, dirs, files in os.walk(path):
for name in files:
if name.endswith(".lyr"):
layerList.append(name)
dataLocation.append(os.path.join(root,name))
parameters[1].filter.list = layerList
return
def updateMessages(self, parameters): #optional
return
def execute(self, parameters, messages):
for i in parameters[1].values:
arcpy.AddMessage("Adding: " + str(i))
mxd = arcpy.mapping.MapDocument("CURRENT")
lyrToAdd = i
indexPosition = layerList.index(lyrToAdd)
lyr = arcpy.mapping.Layer(dataLocation[indexPosition])
arcpy.mapping.AddLayer(mxd.activeDataFrame, lyr)