<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: problems with layer.findAndReplaceWorkspacePath in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/problems-with-layer-findandreplaceworkspacepath/m-p/294405#M22786</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;looks like I forgot to save&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;lyrfile.save()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;I have a bunch of .lyr files that point to a directory that's been moved. &lt;BR /&gt;I'm trying to programmatically re-link them to the new location (hopefully to a UNC location like \\server\folder instead of W:\folder)&lt;BR /&gt;&lt;BR /&gt;so my code looks like this: &lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy, sys, os, fnmatch

dir = sys.argv[1]&amp;nbsp;&amp;nbsp; # directory to search
old = sys.argv[2]&amp;nbsp;&amp;nbsp; # old feature class path/name to replace
new = sys.argv[3]&amp;nbsp;&amp;nbsp; # new feature class path/name

# go to the directory and get a list of the files 
filelist = os.listdir(dir)

# get that file list and for each name....
for filename in filelist: 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # look for any .lyr files
&amp;nbsp;&amp;nbsp;&amp;nbsp; if fnmatch.fnmatch(filename, '*.lyr'):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(filename + " is a layer file")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # create a layer object from the .lyr file
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyrfile = arcpy.mapping.Layer(dir + '\\' + filename)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(filename + " is now a layer object")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(old)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(new)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyrfile.findAndReplaceWorkspacePath(old, new)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage("fixed data source")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
arcpy.AddMessage("finito!!!")
del filename, filelist, dir, old, new, lyrfile&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;but when I run it - I get messages saying that something is happenning (all my addMessages). But when it comes to actually re-mapping my datasource, well, nothing happens. When I re-add the .lyr files to my mxd and check the data source, it doesn't change. It's still the old datasource. &lt;BR /&gt;&lt;BR /&gt;any help???&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 14:09:38 GMT</pubDate>
    <dc:creator>JoshuaChan</dc:creator>
    <dc:date>2021-12-11T14:09:38Z</dc:date>
    <item>
      <title>problems with layer.findAndReplaceWorkspacePath</title>
      <link>https://community.esri.com/t5/python-questions/problems-with-layer-findandreplaceworkspacepath/m-p/294404#M22785</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have a bunch of .lyr files that point to a directory that's been moved. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm trying to programmatically re-link them to the new location (hopefully to a UNC location like \\server\folder instead of W:\folder)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;so my code looks like this: &lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;import arcpy, sys, os, fnmatch

dir = sys.argv[1]&amp;nbsp;&amp;nbsp; # directory to search
old = sys.argv[2]&amp;nbsp;&amp;nbsp; # old feature class path/name to replace
new = sys.argv[3]&amp;nbsp;&amp;nbsp; # new feature class path/name

# go to the directory and get a list of the files 
filelist = os.listdir(dir)

# get that file list and for each name....
for filename in filelist: 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # look for any .lyr files
&amp;nbsp;&amp;nbsp;&amp;nbsp; if fnmatch.fnmatch(filename, '*.lyr'):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(filename + " is a layer file")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # create a layer object from the .lyr file
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyrfile = arcpy.mapping.Layer(dir + '\\' + filename)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(filename + " is now a layer object")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(old)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(new)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyrfile.findAndReplaceWorkspacePath(old, new)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage("fixed data source")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
arcpy.AddMessage("finito!!!")
del filename, filelist, dir, old, new, lyrfile&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;but when I run it - I get messages saying that something is happenning (all my addMessages). But when it comes to actually re-mapping my datasource, well, nothing happens. When I re-add the .lyr files to my mxd and check the data source, it doesn't change. It's still the old datasource. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;any help???&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 May 2012 17:34:27 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/problems-with-layer-findandreplaceworkspacepath/m-p/294404#M22785</guid>
      <dc:creator>JoshuaChan</dc:creator>
      <dc:date>2012-05-11T17:34:27Z</dc:date>
    </item>
    <item>
      <title>Re: problems with layer.findAndReplaceWorkspacePath</title>
      <link>https://community.esri.com/t5/python-questions/problems-with-layer-findandreplaceworkspacepath/m-p/294405#M22786</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;looks like I forgot to save&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;lyrfile.save()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;I have a bunch of .lyr files that point to a directory that's been moved. &lt;BR /&gt;I'm trying to programmatically re-link them to the new location (hopefully to a UNC location like \\server\folder instead of W:\folder)&lt;BR /&gt;&lt;BR /&gt;so my code looks like this: &lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy, sys, os, fnmatch

dir = sys.argv[1]&amp;nbsp;&amp;nbsp; # directory to search
old = sys.argv[2]&amp;nbsp;&amp;nbsp; # old feature class path/name to replace
new = sys.argv[3]&amp;nbsp;&amp;nbsp; # new feature class path/name

# go to the directory and get a list of the files 
filelist = os.listdir(dir)

# get that file list and for each name....
for filename in filelist: 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # look for any .lyr files
&amp;nbsp;&amp;nbsp;&amp;nbsp; if fnmatch.fnmatch(filename, '*.lyr'):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(filename + " is a layer file")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # create a layer object from the .lyr file
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyrfile = arcpy.mapping.Layer(dir + '\\' + filename)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(filename + " is now a layer object")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(old)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(new)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyrfile.findAndReplaceWorkspacePath(old, new)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage("fixed data source")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
arcpy.AddMessage("finito!!!")
del filename, filelist, dir, old, new, lyrfile&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;but when I run it - I get messages saying that something is happenning (all my addMessages). But when it comes to actually re-mapping my datasource, well, nothing happens. When I re-add the .lyr files to my mxd and check the data source, it doesn't change. It's still the old datasource. &lt;BR /&gt;&lt;BR /&gt;any help???&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 14:09:38 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/problems-with-layer-findandreplaceworkspacepath/m-p/294405#M22786</guid>
      <dc:creator>JoshuaChan</dc:creator>
      <dc:date>2021-12-11T14:09:38Z</dc:date>
    </item>
    <item>
      <title>Re: problems with layer.findAndReplaceWorkspacePath</title>
      <link>https://community.esri.com/t5/python-questions/problems-with-layer-findandreplaceworkspacepath/m-p/294406#M22787</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Is there any difference when working with shapefiles? So far my script doesn't seem to like shapefiles. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(changing from C:\folder\shapefile.shp to \\server\folder\shapefile.shp)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;looks like I forgot to save&lt;BR /&gt;&lt;BR /&gt;lyrfile.save()&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 May 2012 19:11:10 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/problems-with-layer-findandreplaceworkspacepath/m-p/294406#M22787</guid>
      <dc:creator>JoshuaChan</dc:creator>
      <dc:date>2012-05-11T19:11:10Z</dc:date>
    </item>
    <item>
      <title>Re: problems with layer.findAndReplaceWorkspacePath</title>
      <link>https://community.esri.com/t5/python-questions/problems-with-layer-findandreplaceworkspacepath/m-p/294407#M22788</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;This script works fine when run from IDLE (or from the Python window):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcpy
layer1 = arcpy.mapping.Layer(r"C:\Temp\NE_States.lyr")
layer1.findAndReplaceWorkspacePath(r"C:\Temp", r"\\JBarrette\Temp")
layer1.saveACopy(r"C:\Temp\NE_States2.lyr")
print layer1.dataSource

&amp;gt;&amp;gt;\\Jbarrette\Temp\NE_Lakes.shp

&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Are you attempting to change the dataset name in any way?&amp;nbsp; FindAndReplaceWorkspacePath only works on the workspace path.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Jeff&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 14:09:41 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/problems-with-layer-findandreplaceworkspacepath/m-p/294407#M22788</guid>
      <dc:creator>JeffBarrette</dc:creator>
      <dc:date>2021-12-11T14:09:41Z</dc:date>
    </item>
    <item>
      <title>Re: problems with layer.findAndReplaceWorkspacePath</title>
      <link>https://community.esri.com/t5/python-questions/problems-with-layer-findandreplaceworkspacepath/m-p/294408#M22789</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;no I was running the script from arctoolbox &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I thought I had this figured out but now when I run it ArcGIS crashes. Doesn't matter if it's ArcCatalog or ArcMap. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;This script works fine when run from IDLE (or from the Python window):&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcpy
layer1 = arcpy.mapping.Layer(r"C:\Temp\NE_States.lyr")
layer1.findAndReplaceWorkspacePath(r"C:\Temp", r"\\JBarrette\Temp")
layer1.saveACopy(r"C:\Temp\NE_States2.lyr")
print layer1.dataSource

&amp;gt;&amp;gt;\\Jbarrette\Temp\NE_Lakes.shp

&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;Are you attempting to change the dataset name in any way?&amp;nbsp; FindAndReplaceWorkspacePath only works on the workspace path.&lt;BR /&gt;&lt;BR /&gt;Jeff&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 14:09:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/problems-with-layer-findandreplaceworkspacepath/m-p/294408#M22789</guid>
      <dc:creator>JoshuaChan</dc:creator>
      <dc:date>2021-12-11T14:09:44Z</dc:date>
    </item>
  </channel>
</rss>

