创建mdb、gdb、shp文件,并返回IWorkspaceName

/// <summary>
/// 创建access工作空间。
/// </summary>
/// <param name="fileName">mdb文件名称。</param>
/// <param name="fileDirectory">mdb文件所在目录的路径。</param>
/// <returns>新创建的Personal GDB的<see cref="T:ESRI.ArcGIS.Geodatabase.IWorkspaceName" />。</returns>
public static IWorkspaceName CreateAccessWorkspace(string fileName, string fileDirectory)
{
    if (!Directory.Exists(fileDirectory))
    {
        throw new DirectoryNotFoundException(string.Format("目录'{0}'不存在", fileDirectory));
    }
    string path = Path.Combine(fileDirectory, fileName);
    if (File.Exists(path))
    {
        throw new ArgumentException(string.Format("mdb文件'{0}'已经存在", fileName), "fileName");
    }
    Type typeFromProgID = Type.GetTypeFromProgID("esriDataSourcesGDB.AccessWorkspaceFactory");
    IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(typeFromProgID);
    return workspaceFactory.Create(fileDirectory, fileName, null, 0);
}

/// <summary>
/// 创建access工作空间。
/// </summary>
/// <param name="mdbFilePath">mdb文件路径。</param>
/// <returns>新创建的Personal GDB的<see cref="T:ESRI.ArcGIS.Geodatabase.IWorkspaceName" />。</returns>
public static IWorkspaceName CreateAccessWorkspace(string mdbFilePath)
{
    if (File.Exists(mdbFilePath))
    {
        throw new ArgumentException(string.Format("mdb文件'{0}'已经存在", mdbFilePath), "mdbFilePath");
    }
    string directoryName = Path.GetDirectoryName(mdbFilePath);
    if (!Directory.Exists(directoryName))
    {
        throw new DirectoryNotFoundException(string.Format("目录'{0}'不存在", directoryName));
    }
    string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(mdbFilePath);
    Type typeFromProgID = Type.GetTypeFromProgID("esriDataSourcesGDB.AccessWorkspaceFactory");
    IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(typeFromProgID);
    return workspaceFactory.Create(directoryName, fileNameWithoutExtension, null, 0);
}

/// <summary>
/// 创建File GDB工作空间。
/// </summary>
/// <param name="fileGDBName">file gdb名称。</param>
/// <param name="fileGDBDirectory">file gdb所在目录路径。</param>
/// <returns>如果<paramref name="fileGDBPath" />新创建的File GDB的<see cref="T:ESRI.ArcGIS.Geodatabase.IWorkspaceName" />。</returns>
public static IWorkspaceName CreateFileGDBWorkspace(string fileGDBName, string fileGDBDirectory)
{
    if (!Directory.Exists(fileGDBDirectory))
    {
        throw new DirectoryNotFoundException(string.Format("目录'{0}'不存在", fileGDBDirectory));
    }
    string path = Path.Combine(fileGDBDirectory, fileGDBName);
    if (File.Exists(path))
    {
        throw new ArgumentException(string.Format("file gdb '{0}'已经存在", fileGDBName), "fileGDBName");
    }
    Type typeFromProgID = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory");
    IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(typeFromProgID);
    return workspaceFactory.Create(fileGDBDirectory, fileGDBName, null, 0);
}

/// <summary>
/// 创建File GDB工作空间。
/// </summary>
/// <param name="mdbFilePath">file gdb路径。</param>
/// <returns>如果<paramref name="fileGDBPath" />新创建的File GDB的<see cref="T:ESRI.ArcGIS.Geodatabase.IWorkspaceName" />。</returns>
public static IWorkspaceName CreateFileGDBWorkspace(string fileGDBPath)
{
    if (Directory.Exists(fileGDBPath))
    {
        throw new ArgumentException(string.Format("file gdb '{0}'已经存在", fileGDBPath), "fileGdbPath");
    }
    string directoryName = Path.GetDirectoryName(fileGDBPath);
    if (!Directory.Exists(directoryName))
    {
        throw new DirectoryNotFoundException(string.Format("目录'{0}'不存在", directoryName));
    }
    string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileGDBPath);
    Type typeFromProgID = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory");
    IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(typeFromProgID);
    return workspaceFactory.Create(directoryName, fileNameWithoutExtension, null, 0);
}

/// <summary>
/// 创建shape file工作空间。
/// </summary>
/// <param name="shapefileDirectory">shape file文件所在目录的路径。</param>
/// <returns>如果<paramref name="shapefileDirectory" />新创建的shape file的<see cref="T:ESRI.ArcGIS.Geodatabase.IWorkspaceName" />。</returns>
public static IWorkspaceName CreateShapefileWorkspace(string shapefileDirectory)
{
    string directoryName = Path.GetDirectoryName(shapefileDirectory);
    if (!Directory.Exists(directoryName))
    {
        throw new DirectoryNotFoundException(string.Format("目录'{0}'不存在", shapefileDirectory));
    }
    string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(shapefileDirectory);
    Type typeFromProgID = Type.GetTypeFromProgID("esriDataSourcesFile.ShapefileWorkspaceFactory");
    IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(typeFromProgID);
    return workspaceFactory.Create(directoryName, fileNameWithoutExtension, null, 0);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值