AE 打开各种格式文件
2012-04-10 12:23
639 查看
// <summary>
/// 打开ShapeFile文件
/// </summary>
/// <param name="filePath">文件路径</param>
/// <param name="fileName">文件名</param>
/// <returns>IFeatureClass</returns>
public IFeatureClass GetShpFile(string filePath, string fileName)
{
IFeatureWorkspace featureWorkspace;
IFeatureClass featureClass;
featureWorkspace = GetShapeWorkspace(filePath) as IFeatureWorkspace;
try
{
featureClass = featureWorkspace.OpenFeatureClass(fileName);
}
catch
{
featureClass = null;
}
ReleaseAE.ReleaseAEObject(featureWorkspace);
return featureClass;
}
/// <summary>
/// 打开Raster文件(如果数据格式为是ESRI GRID,fileName不带后缀,若为tiff则带后缀.tif)
/// </summary>
/// <param name="filePath">文件路径</param>
/// <param name="fileName">文件名</param>
/// <returns>IRaster</returns>
public IRaster GetRasterFile(string filePath, string fileName)
{
IRasterWorkspace2 rasterWorkspace;
IRasterDataset rasterDataSet;
IRasterLayer rasterLayer;
IRaster raster;
rasterWorkspace = GetRasterWorkspace(filePath) as IRasterWorkspace2;
try
{
rasterDataSet = rasterWorkspace.OpenRasterDataset(fileName);
rasterLayer = new RasterLayerClass();
rasterLayer.CreateFromDataset(rasterDataSet);
raster = rasterLayer.Raster;
//ReleaseAE.ReleaseAEObject(rasterDataSet);
//ReleaseAE.ReleaseAEObject(rasterLayer);
}
catch
{
raster = null;
}
ReleaseAE.ReleaseAEObject(rasterWorkspace);
return raster;
}
/// <summary>
/// 打开PersonalGeodatabase里的数据要素
/// </summary>
/// <param name="mdbFile">mdb文件(带后缀.mdb)</param>
/// <param name="featureName">要素名</param>
/// <returns></returns>
public IFeatureClass GetPersonalGeodatabase(string mdbFile, string featureName)
{
IFeatureWorkspace featureWorkspace;
IFeatureClass featureClass;
workspaceFactory = new AccessWorkspaceFactoryClass();
featureWorkspace = workspaceFactory.OpenFromFile(mdbFile, 0) as IFeatureWorkspace;
featureClass = featureWorkspace.OpenFeatureClass(featureName);
ReleaseAE.ReleaseAEObject(featureWorkspace);
ReleaseAE.ReleaseAEObject(workspaceFactory);
return featureClass;
}
/// <summary>
/// 打开FileGeodatabase里的数据要素
/// </summary>
/// <param name="gdbFile">gdb文件</param>
/// <param name="featureName">要素名</param>
/// <returns></returns>
public IFeatureClass GetFileGeodatabase(string gdbFile, string featureName)
{
IFeatureWorkspace featureWorkspace;
IFeatureClass featureClass;
workspaceFactory = new FileGDBWorkspaceFactoryClass();
featureWorkspace = workspaceFactory.OpenFromFile(gdbFile, 0) as IFeatureWorkspace;
featureClass = featureWorkspace.OpenFeatureClass(featureName);
ReleaseAE.ReleaseAEObject(featureWorkspace);
ReleaseAE.ReleaseAEObject(workspaceFactory);
return featureClass;
}
/// <summary>
/// 打开TIN文件
/// </summary>
/// <param name="tinFile">文件路径</param>
/// <param name="fileName">文件名</param>
/// <returns>Tin</returns>
public ITin GetTinFile(string tinFile, string fileName)
{
ITinWorkspace pTinWorkspace;
ITin pTin;
workspaceFactory = new TinWorkspaceFactoryClass();
pTinWorkspace = workspaceFactory.OpenFromFile(tinFile, 0) as ITinWorkspace;
pTin = pTinWorkspace.OpenTin(fileName);
ReleaseAE.ReleaseAEObject(pTinWorkspace);
ReleaseAE.ReleaseAEObject(workspaceFactory);
return pTin;
}
/// <summary>
/// 打开CAD文件(featurename要带扩展名)
/// </summary>
/// <param name="cadFile">文件路径</param>
/// <param name="featureName">文件名</param>
/// <returns>featureClass</returns>
//public IFeatureClass GetCADFile(string cadFile, string featureName)
//{
// //IFeatureWorkspace featureWorkspace;
// //IFeatureClass featureClass;
// //workspaceFactory = new CadWorkspaceFactoryClass();
// //featureWorkspace = workspaceFactory.OpenFromFile(cadFile, 0) as IFeatureWorkspace;
// //featureClass = featureWorkspace.OpenFeatureClass(featureName);
// //return featureClass;
//}
/// <summary>
/// 打开数据表格
/// </summary>
/// <param name="connectionString">连接数据库字符串</param>
/// <param name="tableName">表名</param>
/// <returns>table</returns>
public ITable GetRDBMS(string connectionString, string tableName)
{
IFeatureWorkspace featureWorkspace;
workspaceFactory = new OLEDBWorkspaceFactoryClass();
IPropertySet pPropset = new PropertySetClass();
ITable pTable;
pPropset.SetProperties("CONNECTSTRING", connectionString);
featureWorkspace = workspaceFactory.Open(pPropset,0) as IFeatureWorkspace;
pTable = featureWorkspace.OpenTable(tableName);
ReleaseAE.ReleaseAEObject(featureWorkspace);
ReleaseAE.ReleaseAEObject(pPropset);
return pTable;
}
/// <summary>
/// 创建内存工作空间Name
/// </summary>
/// <param name="workspacename">工作空间名称</param>
/// <returns>工作空间Name</returns>
public IWorkspaceName CreatMemoryWorkspaceName(string workspacename)
{
IWorkspaceName workspaceName;
workspaceFactory = new InMemoryWorkspaceFactoryClass();
workspaceName = workspaceFactory.Create("d:\\", workspacename, null, 0);
ReleaseAE.ReleaseAEObject(workspaceFactory);
return workspaceName;
}
/// <summary>
/// 创建内存工作空间
/// </summary>
/// <param name="workspacename">工作空间名称</param>
/// <returns>工作空间类型IWorkspace </returns>
public IWorkspace CreatMemoryWorkspace(string workspacename)
{
IWorkspaceName workspaceName;
IName name;
IWorkspace workspace;
workspaceName = CreatMemoryWorkspaceName(workspacename);
name = workspaceName as IName;
name.NameString = workspacename;
workspace = name.Open() as IWorkspace;
ReleaseAE.ReleaseAEObject(workspaceName);
ReleaseAE.ReleaseAEObject(name);
return workspace;
}
/// <summary>
/// 创建本地磁盘矢量工作空间
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
public IWorkspace GetShapeWorkspace(string filePath)
{
IWorkspace workspace;
workspaceFactory = new ShapefileWorkspaceFactoryClass();
workspace = workspaceFactory.OpenFromFile(filePath, 0);
ReleaseAE.ReleaseAEObject(workspaceFactory);
workspaceFactory = null;
return workspace;
}
public IWorkspaceName GetShapeWorkspaceName(string spaceName)
{
IWorkspaceName workspaceName;
workspaceFactory = new ShapefileWorkspaceFactoryClass();
workspaceName = workspaceFactory.Create(Path.GetTempPath(), spaceName, null, 0);
ReleaseAE.ReleaseAEObject(workspaceFactory);
return workspaceName;
}
/// <summary>
/// 创建本地磁盘栅格工作空间
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
public IWorkspace GetRasterWorkspace(string filePath)
{
IWorkspace workspace;
workspaceFactory = new RasterWorkspaceFactoryClass();
workspace = workspaceFactory.OpenFromFile(filePath, 0);
ReleaseAE.ReleaseAEObject(workspaceFactory);
return workspace;
}
/// 打开ShapeFile文件
/// </summary>
/// <param name="filePath">文件路径</param>
/// <param name="fileName">文件名</param>
/// <returns>IFeatureClass</returns>
public IFeatureClass GetShpFile(string filePath, string fileName)
{
IFeatureWorkspace featureWorkspace;
IFeatureClass featureClass;
featureWorkspace = GetShapeWorkspace(filePath) as IFeatureWorkspace;
try
{
featureClass = featureWorkspace.OpenFeatureClass(fileName);
}
catch
{
featureClass = null;
}
ReleaseAE.ReleaseAEObject(featureWorkspace);
return featureClass;
}
/// <summary>
/// 打开Raster文件(如果数据格式为是ESRI GRID,fileName不带后缀,若为tiff则带后缀.tif)
/// </summary>
/// <param name="filePath">文件路径</param>
/// <param name="fileName">文件名</param>
/// <returns>IRaster</returns>
public IRaster GetRasterFile(string filePath, string fileName)
{
IRasterWorkspace2 rasterWorkspace;
IRasterDataset rasterDataSet;
IRasterLayer rasterLayer;
IRaster raster;
rasterWorkspace = GetRasterWorkspace(filePath) as IRasterWorkspace2;
try
{
rasterDataSet = rasterWorkspace.OpenRasterDataset(fileName);
rasterLayer = new RasterLayerClass();
rasterLayer.CreateFromDataset(rasterDataSet);
raster = rasterLayer.Raster;
//ReleaseAE.ReleaseAEObject(rasterDataSet);
//ReleaseAE.ReleaseAEObject(rasterLayer);
}
catch
{
raster = null;
}
ReleaseAE.ReleaseAEObject(rasterWorkspace);
return raster;
}
/// <summary>
/// 打开PersonalGeodatabase里的数据要素
/// </summary>
/// <param name="mdbFile">mdb文件(带后缀.mdb)</param>
/// <param name="featureName">要素名</param>
/// <returns></returns>
public IFeatureClass GetPersonalGeodatabase(string mdbFile, string featureName)
{
IFeatureWorkspace featureWorkspace;
IFeatureClass featureClass;
workspaceFactory = new AccessWorkspaceFactoryClass();
featureWorkspace = workspaceFactory.OpenFromFile(mdbFile, 0) as IFeatureWorkspace;
featureClass = featureWorkspace.OpenFeatureClass(featureName);
ReleaseAE.ReleaseAEObject(featureWorkspace);
ReleaseAE.ReleaseAEObject(workspaceFactory);
return featureClass;
}
/// <summary>
/// 打开FileGeodatabase里的数据要素
/// </summary>
/// <param name="gdbFile">gdb文件</param>
/// <param name="featureName">要素名</param>
/// <returns></returns>
public IFeatureClass GetFileGeodatabase(string gdbFile, string featureName)
{
IFeatureWorkspace featureWorkspace;
IFeatureClass featureClass;
workspaceFactory = new FileGDBWorkspaceFactoryClass();
featureWorkspace = workspaceFactory.OpenFromFile(gdbFile, 0) as IFeatureWorkspace;
featureClass = featureWorkspace.OpenFeatureClass(featureName);
ReleaseAE.ReleaseAEObject(featureWorkspace);
ReleaseAE.ReleaseAEObject(workspaceFactory);
return featureClass;
}
/// <summary>
/// 打开TIN文件
/// </summary>
/// <param name="tinFile">文件路径</param>
/// <param name="fileName">文件名</param>
/// <returns>Tin</returns>
public ITin GetTinFile(string tinFile, string fileName)
{
ITinWorkspace pTinWorkspace;
ITin pTin;
workspaceFactory = new TinWorkspaceFactoryClass();
pTinWorkspace = workspaceFactory.OpenFromFile(tinFile, 0) as ITinWorkspace;
pTin = pTinWorkspace.OpenTin(fileName);
ReleaseAE.ReleaseAEObject(pTinWorkspace);
ReleaseAE.ReleaseAEObject(workspaceFactory);
return pTin;
}
/// <summary>
/// 打开CAD文件(featurename要带扩展名)
/// </summary>
/// <param name="cadFile">文件路径</param>
/// <param name="featureName">文件名</param>
/// <returns>featureClass</returns>
//public IFeatureClass GetCADFile(string cadFile, string featureName)
//{
// //IFeatureWorkspace featureWorkspace;
// //IFeatureClass featureClass;
// //workspaceFactory = new CadWorkspaceFactoryClass();
// //featureWorkspace = workspaceFactory.OpenFromFile(cadFile, 0) as IFeatureWorkspace;
// //featureClass = featureWorkspace.OpenFeatureClass(featureName);
// //return featureClass;
//}
/// <summary>
/// 打开数据表格
/// </summary>
/// <param name="connectionString">连接数据库字符串</param>
/// <param name="tableName">表名</param>
/// <returns>table</returns>
public ITable GetRDBMS(string connectionString, string tableName)
{
IFeatureWorkspace featureWorkspace;
workspaceFactory = new OLEDBWorkspaceFactoryClass();
IPropertySet pPropset = new PropertySetClass();
ITable pTable;
pPropset.SetProperties("CONNECTSTRING", connectionString);
featureWorkspace = workspaceFactory.Open(pPropset,0) as IFeatureWorkspace;
pTable = featureWorkspace.OpenTable(tableName);
ReleaseAE.ReleaseAEObject(featureWorkspace);
ReleaseAE.ReleaseAEObject(pPropset);
return pTable;
}
/// <summary>
/// 创建内存工作空间Name
/// </summary>
/// <param name="workspacename">工作空间名称</param>
/// <returns>工作空间Name</returns>
public IWorkspaceName CreatMemoryWorkspaceName(string workspacename)
{
IWorkspaceName workspaceName;
workspaceFactory = new InMemoryWorkspaceFactoryClass();
workspaceName = workspaceFactory.Create("d:\\", workspacename, null, 0);
ReleaseAE.ReleaseAEObject(workspaceFactory);
return workspaceName;
}
/// <summary>
/// 创建内存工作空间
/// </summary>
/// <param name="workspacename">工作空间名称</param>
/// <returns>工作空间类型IWorkspace </returns>
public IWorkspace CreatMemoryWorkspace(string workspacename)
{
IWorkspaceName workspaceName;
IName name;
IWorkspace workspace;
workspaceName = CreatMemoryWorkspaceName(workspacename);
name = workspaceName as IName;
name.NameString = workspacename;
workspace = name.Open() as IWorkspace;
ReleaseAE.ReleaseAEObject(workspaceName);
ReleaseAE.ReleaseAEObject(name);
return workspace;
}
/// <summary>
/// 创建本地磁盘矢量工作空间
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
public IWorkspace GetShapeWorkspace(string filePath)
{
IWorkspace workspace;
workspaceFactory = new ShapefileWorkspaceFactoryClass();
workspace = workspaceFactory.OpenFromFile(filePath, 0);
ReleaseAE.ReleaseAEObject(workspaceFactory);
workspaceFactory = null;
return workspace;
}
public IWorkspaceName GetShapeWorkspaceName(string spaceName)
{
IWorkspaceName workspaceName;
workspaceFactory = new ShapefileWorkspaceFactoryClass();
workspaceName = workspaceFactory.Create(Path.GetTempPath(), spaceName, null, 0);
ReleaseAE.ReleaseAEObject(workspaceFactory);
return workspaceName;
}
/// <summary>
/// 创建本地磁盘栅格工作空间
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
public IWorkspace GetRasterWorkspace(string filePath)
{
IWorkspace workspace;
workspaceFactory = new RasterWorkspaceFactoryClass();
workspace = workspaceFactory.OpenFromFile(filePath, 0);
ReleaseAE.ReleaseAEObject(workspaceFactory);
return workspace;
}
相关文章推荐
- AE 打开各种格式文件
- Android中打开各种格式的文件(apk、word、excel、ppt、pdf、音视频、图片等)
- matlab的各种数据读取(txt,dat,mat等格式),文件打开关闭
- matlab的各种数据读取(txt,dat,mat等格式),文件打开关闭
- 各种格式的文件使用工具打开
- Android之旅第三站——Android默认打开各种文件格式DataAndType…
- 笔记-Android中打开各种格式的文件(apk、word、excel、ppt、pdf、音视频、图片等)
- ArcEngine开发总结-(1)打开各种格式文件
- AE+C# 打开各种文件
- 平时遇到的各种格式的文件及其打开方法
- 之前账号的文章1:android各种格式文件的打开
- 各种格式的文件用什么软件打开
- android各种格式文件的打开(代码)
- 笔记-Android中打开各种格式的文件(apk、word、excel、ppt、pdf、音视频、图片等)
- 超简单快速实现附件上传(各种格式文件)和下载显示(调用浏览器下载后选择可以打开的应用查看)
- 检查打开的文件是不是ELF格式的文件,提取“特别”的节中的信息
- 报表开发导出各种格式文件的API
- linux下打开chm格式文件
- 导出CSV格式文件,用Excel打开乱码的解决办法
- Office 2003打开Office 2007文件格式的兼容软件包