在介绍ArcGIS中各种数据的打开方法时,我们用到了许多对于File文件的操作,在此做一个常用用法的总结。例如,

介绍ArcGIS中各种数据的打开方法——mxd(地图文档)

以方法一为例:运用LoadMxFile方法的函数参数加载地图文档

private void loadMapAccDoc1()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "打开地图文档";
ofd.Filter = "map documents(*.mxd)|*.mxd";
ofd.InitialDirectory = m_Path;
//判断, 如果对话框结构不为OK, 退出函数体
DialogResult DR = ofd.ShowDialog();
if (DR != DialogResult.OK)
return;
string filePath = ofd.FileName;
if (axMapControl1.CheckMxFile(filePath))
{
//设置axMapControl控制鼠标指针图标选项为沙漏光标
axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerArrowHourglass;
//三个参数(filePath——文件路径、0——地址名称或索引、Type.Missing——通过反射进行调用获取参数的默认值)
axMapControl1.LoadMxFile(filePath, , Type.Missing);
//定义axMapControl控制鼠标指针图标为默认箭头
axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerDefault;
axMapControl1.Extent = axMapControl1.FullExtent;
}
else
{
MessageBox.Show(filePath + "不是有效的地图文档");
}
}

从以上的代码中,我们归纳出几条常用的。

1、

OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "打开地图文档";
ofd.Filter = "map documents(*.mxd)|*.mxd";
ofd.InitialDirectory = m_Path;

2、

DialogResult DR = ofd.ShowDialog();
if (DR != DialogResult.OK)
return;

可改写为(推荐使用)

if(ofd.ShowDialog()!=DialogResult.OK)
return;

3、

因为C#当中的FileName得到完整的路径(路径+文件名),让人感到有点不理解,很容易会让人误以为只是得到文件名。

因此,我们在编码中规定,

pFileName(完整的路径,路径+文件名)

fileName(文件名)

filePath(路径)

因此方法一中,应改写为:

private void loadMapAccDoc1()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "打开地图文档";
ofd.Filter = "map documents(*.mxd)|*.mxd";
ofd.InitialDirectory = m_Path;
//判断, 如果对话框结构不为OK, 退出函数体
if (ofd.ShowDialog() != DialogResult.OK)
return;
string pFileName = ofd.FileName;
if (axMapControl1.CheckMxFile(pFileName))
{
//设置axMapControl控制鼠标指针图标选项为沙漏光标
axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerArrowHourglass;
//三个参数(pFileName——文件路径、0——地址名称或索引、Type.Missing——通过反射进行调用获取参数的默认值)
axMapControl1.LoadMxFile(pFileName, , Type.Missing);
//定义axMapControl控制鼠标指针图标为默认箭头
axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerDefault;
axMapControl1.Extent = axMapControl1.FullExtent;
}
else
{
MessageBox.Show(pFileName+ "不是有效的地图文档");
}
}

4、

//FileInfo类提供创建、复制、删除、移动和打开文件的实例方法
FileInfo fileInfo = new FileInfo(ofd.FileName);
//获取父目录并强制转换成字符型
String filePath = fileInfo.Directory.ToString();
//得到不带后缀的文件名
String sfileName = fileInfo.Name.Substring(, fileInfo.Name.IndexOf("."));

5、

string pFileName = ofd.FileName;
int index = ;
//获取最后一个“\\”时的索引位置
index = pFileName.LastIndexOf("\\");
//获得shp文件的路径
string filePath = pFileName.Substring(, index);
//获得shp文件名
string fileName = pFileName.Substring(index + , pFileName.Length - (index + ));

谢谢观看!本人初学GIS二次开发,如果有不对的地方,请多多包涵!

ArcGIS加载数据中常用的File文件方法总结的更多相关文章

  1. linux c++ 加载动态库常用的三种方法

    链接库时的搜索路径顺序:LD_LIBRARY_PATH --> /etc/ld.so.conf --> /lib,/usr/lib 方法1. vi .bash_profile    设置环 ...

  2. Highcharts 异步加载数据曲线图表

    导入 data.js 文件 异步加载数据需要引入以下js 文件: <script src="http://code.highcharts.com/modules/data.js&quo ...

  3. Ajax页面的加载数据与删除

    1.数据库找一张表: 颜色表2.主页面主页面的代码用到tbody:TBODY作用是:可以控制表格分行下载,从而提高下载速度.(网页的打开是先表格的的内容全部下载完毕后,才显示出来,分行下载可以先显示部 ...

  4. Highcharts 基本曲线图;Highcharts 带有数据标签曲线图表;Highcharts 异步加载数据曲线图表

    Highcharts 基本曲线图 实例 文件名:highcharts_line_basic.htm <html> <head> <meta charset="U ...

  5. ArcGIS Engine中加载数据

    ArcGIS Engine中加载数据 http://blog.csdn.net/gisstar/article/details/4206822   分类: AE开发积累2009-05-21 16:49 ...

  6. ML.NET Cookbook --- 1.如何从文本文件中加载数据?

    使用ML.NET中的TextLoader扩展方法从文本文件中加载数据.你需要知道在文本文件中数据列在那里,它们的类型是什么,在文本文件中什么位置可以找到它们. 请注意:对于ML.NET只读取文件的某些 ...

  7. 机器学习:从sklearn中加载数据

    一.sklearn模块 sklearn模块下有很多子模块,常用的数据集在:sklearn.datasets模块下: 通过数据集中DESCR来查看数据集的文档: 从datasets中加载数据: impo ...

  8. echarts在.Net中使用实例(二) 使用ajax动态加载数据

    通过上一篇文章可以知道和echarts参考手册可知,series字段就是用来存储我们显示的数据,所以我们只需要用ajax来获取series的值就可以. option 名称 描述 {color}back ...

  9. Flexigrid从对象中加载数据

    (有问题,在找…………) Flexigrid是用来动态加载数据的一种比较好(老)的Jquery表插件,然后有些时候,我们需要其从本地或者jQuery对象中加载数据,比如有这么个需求,页面显示中有两个表 ...

随机推荐

  1. (转) 中断处理程序&中断服务例程

             关于中断处理程序和中断服务例程ISR的区别及联系,之前一直搞混,今天抽时间将两者关系弄弄清楚.ok,下面进入主题.       首先中断处理程序(Interrupt Handler) ...

  2. 冰多多团队-第九次Scrum例会

    冰多多团队-第九次Scrum会议 工作情况 团队成员 已完成任务 待完成任务 zpj debug, IAT debug, IAT 牛雅哲 debug, IAT 接通新的语音识别接口和termux,完成 ...

  3. [Beta]Scrum Meeting#10

    github 本次会议项目由PM召开,时间为5月15日晚上10点30分 时长15分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客整理文档 撰写博客整理文档 swoip 为适应新功能调整布局前 ...

  4. Densely semantically aligned person re-identification

    Densely semantically aligned person re-identification https://arxiv.org/abs/1812.08967

  5. 运维笔记--Docker文件占用磁盘空间异常处理

    场景描述: 1. 服务器运行一段时间后,发现系统盘磁盘空间在不断增加,一开始的时候,不会影响系统,随着时间的推移,磁盘空间在不断增加,直到有一天你会发现系统盘剩余空间即将使用完,值得庆幸的是,如果您使 ...

  6. scrapy入门案例

    一. 新建项目(scrapy startproject) 在开始爬取之前,必须创建一个新的Scrapy项目.进入自定义的项目目录中,运行下列命令: scrapy startproject scrapy ...

  7. Spark连续特征转化成离散特征

    当数据量很大的时候,分类任务通常使用[离散特征+LR]集成[连续特征+xgboost],如果把连续特征加入到LR.决策树中,容易造成overfit. 如果想用上连续型特征,使用集成学习集成多种算法是一 ...

  8. centos 查看版本 及 升级

     查看系统版本: cat /etc/redhat-release(/etc/centos-release)// 或者 rpm -q centos-release [root@56 ~]# cat /e ...

  9. Qt开发经验小技巧51-60

    在某些http post数据的时候,如果采用的是&字符串连接的数据发送,中文解析乱码的话,需要将中文进行URL转码. QString content = "测试中文"; Q ...

  10. sublime text 文件列表如何忽略特定格式的文件名

    1.只需要Preferences (中文首选项)里面找到setting-default(设置默认)     2.在设置面板里面找到 "folder_exclude_patterns" ...