GeodatabaseConversion\ToFileGDB.vb
' Copyright 2010 ESRI ' ' All rights reserved under the copyright laws of the United States ' and applicable international laws, treaties, and conventions. ' ' You may freely redistribute and use this sample code, with or ' without modification, provided you include the original copyright ' notice and use restrictions. ' ' See the use restrictions. ' Imports Microsoft.VisualBasic Imports System Imports System.Text Imports ESRI.ArcGIS.ConversionTools Imports ESRI.ArcGIS.DataManagementTools Imports ESRI.ArcGIS.Geoprocessor Imports ESRI.ArcGIS.Geoprocessing Imports ESRI.ArcGIS.esriSystem Namespace GeodatabaseConversion Friend Class ToFileGDB Shared Sub Main(ByVal args As String()) ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop) ' Initialize the Geoprocessor Dim geoprocessor As ESRI.ArcGIS.Geoprocessor.Geoprocessor = New ESRI.ArcGIS.Geoprocessor.Geoprocessor() ' Allow for the overwriting of file geodatabases, if they previously exist. geoprocessor.OverwriteOutput = True ' Set the workspace to a folder containing personal geodatabases. geoprocessor.SetEnvironmentValue("workspace", "C:\GP") ' Identify personal geodatabases. Dim workspaces As IGpEnumList = geoprocessor.ListWorkspaces("*", "Access") Dim workspace As String = workspaces.Next() Do While workspace <> "" ' Set workspace to current personal geodatabase geoprocessor.SetEnvironmentValue("workspace", workspace) ' Create a file geodatabase with the same name as the personal geodatabase Dim gdbname As String = System.IO.Path.GetFileName(workspace).Replace(".mdb", "") Dim dirname As String = System.IO.Path.GetDirectoryName(workspace) ' Execute CreateFileGDB tool Dim createFileGDBTool As CreateFileGDB = New CreateFileGDB(dirname, gdbname & ".gdb") geoprocessor.Execute(createFileGDBTool, Nothing) ' Initialize the Copy Tool Dim copyTool As Copy = New Copy() ' Identify feature classes and copy to file geodatabase Dim fcs As IGpEnumList = geoprocessor.ListFeatureClasses("", "", "") Dim fc As String = fcs.Next() Do While fc <> "" Console.WriteLine("Copying " & fc & " to " & gdbname & ".gdb") copyTool.in_data = fc copyTool.out_data = dirname & "\" & gdbname & ".gdb" & "\" & fc geoprocessor.Execute(copyTool, Nothing) fc = fcs.Next() Loop ' Identify feature datasets and copy to file geodatabase Dim fds As IGpEnumList = geoprocessor.ListDatasets("", "") Dim fd As String = fds.Next() Do While fd <> "" Console.WriteLine("Copying " & fd & " to " & gdbname & ".gdb") copyTool.in_data = fd copyTool.out_data = dirname & "\" & gdbname & ".gdb" & "\" & fd geoprocessor.Execute(copyTool, Nothing) fd = fds.Next() Loop ' Identify tables and copy to file geodatabase Dim tbls As IGpEnumList = geoprocessor.ListTables("", "") Dim tbl As String = tbls.Next() Do While tbl <> "" Console.WriteLine("Copying " & tbl & " to " & gdbname & ".gdb") copyTool.in_data = tbl copyTool.out_data = dirname & "\" & gdbname & ".gdb" & "\" & tbl geoprocessor.Execute(copyTool, Nothing) tbl = tbls.Next() Loop workspace = workspaces.Next() Loop End Sub End Class End Namespace