I/O小总结
//判断不存在就创建目录 ,然后拷贝文件
DirectoryInfo di = null;
if (!Directory.Exists(n.Attribute("value").Value + goalPath))
{
di = Directory.CreateDirectory(n.Attribute("value").Value + goalPath);
FileInfo file = new FileInfo(path);
File.Copy(path, (di.FullName + "\\" + file.Name), true);
}
其中,
File.Copy方法表示吧文件从哪复制到哪,true的意思是可以覆盖之前有的文件,这个只能用于文件对文件的操作,不能用于文件对文件夹的操作
//显示进度条和统计数据发送多少
//countNum:总数
//value:当前数
//控件使用了跨线程的访问方式 public void ShowData(int countNum,int value)
{ //总数据
if (progressBar1.InvokeRequired)
{
progressBar1.Invoke(new Action<int>(s => { this.progressBar1.Maximum = s; }), countNum + );
}
else
{
this.progressBar1.Maximum = countNum+;
} //当前数据
if (progressBar1.InvokeRequired)
{
//value包括了标题行,value-1是去掉标题行
progressBar1.Invoke(new Action<int>(s => { this.progressBar1.Value = s; }), value-);
}
else
{
this.progressBar1.Value = value-;
} //记录进度
if (lbRecord.InvokeRequired)
{
lbRecord.Invoke(new Action<string>(s => { this.lbRecord.Text = s; }), "当前数据一共:" + sheetCount + "条,已导入:" + (Convert.ToInt32(value - )) + "条");
}
else
{
this.lbRecord.Text = "当前数据一共:" + sheetCount + "条,已导入:" + (Convert.ToInt32(value-)) + "条";
}
}
//使用config文件保存文件的根目录
//导入的时候用到的config里面的节点根目录
XDocument document = new XDocument();
//加载文件
document = XDocument.Load(@"..\..\App.config");
//读取根节点
XElement root = document.Root;
XElement n = root.Elements("rootFile").Where(u => u.Attribute("name").Value == "rf").ElementAt();
//config的设置,第一步注册
<configSections>
<section name="rootFile" type="System.Configuration.IgnoreSectionHandler"/>
</configSections>
//第二步创建节点
<rootFile name="rf" value="D:\影像文件\" />
//寻找对应的要导入的目录下的PDF文件
string[] dirs = Directory.GetFiles(this.txtFilePath.Text, fileNumber + ".pdf", SearchOption.AllDirectories); 这个可以查找各种格式的文件,是递归文件夹的查询方式,但是文件夹嵌套过多的时候还是建议使用递归的方式
//获取文件名,就是获取file.Extension扩展名以后替换成空字符串
file.Name.Replace(file.Extension, "") //获取扩展名,这个扩展名是带点的,所以也要替换掉 file.Extension.Replace(".", "")
他们是由fileinfo类实例化来的
另外,执行多个操作数据库方法同时成功的时候要在同一个连接下使用事务con.open只执行一次就好了。trans.roolback要在异常块执行
//这段是点击按钮以后出现文件夹选项窗口,可以获取该文件夹下面的所有文件
FolderBrowserDialog fd = new FolderBrowserDialog();
if (fd.ShowDialog() == DialogResult.OK)
{
//操作
}
I/O小总结的更多相关文章
- 【小程序分享篇 二 】web在线踢人小程序,维持用户只能在一个台电脑持登录状态
最近离职了, 突然记起来还一个小功能没做, 想想也挺简单,留下代码和思路给同事做个参考. 换工作心里挺忐忑, 对未来也充满了憧憬与担忧.(虽然已是老人, 换了N次工作了,但每次心里都和忐忑). 写写代 ...
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
- jQuery实践-网页版2048小游戏
▓▓▓▓▓▓ 大致介绍 看了一个实现网页版2048小游戏的视频,觉得能做出自己以前喜欢玩的小游戏很有意思便自己动手试了试,真正的验证了这句话-不要以为你以为的就是你以为的,看视频时觉得看懂了,会写了, ...
- 微信小程序开发心得
微信小程序也已出来有一段时间了,最近写了几款微信小程序项目,今天来说说感受. 首先开发一款微信小程序,最主要的就是针对于公司来运营的,因为,在申请appid(微信小程序ID号)时候,需要填写相关的公司 ...
- 前端网络、JavaScript优化以及开发小技巧
一.网络优化 YSlow有23条规则,中文可以参考这里.这几十条规则最主要是在做消除或减少不必要的网络延迟,将需要传输的数据压缩至最少. 1)合并压缩CSS.JavaScript.图片,静态资源CDN ...
- 微信应用号(小程序)开发IDE配置(第一篇)
2016年9月22日凌晨,微信宣布“小程序”问世,当然只是开始内测了,微信公众平台对200个服务号发送了小程序内测邀请.那么什么是“小程序”呢,来看微信之父怎么说 看完之后,相信大家大概都有些明白了吧 ...
- Chrome出了个小bug:论如何在Chrome下劫持原生只读对象
Chrome出了个小bug:论如何在Chrome下劫持原生只读对象 概述 众所周知,虽然JavaScript是个很灵活的语言,浏览器里很多原生的方法都可以随意覆盖或者重写,比如alert.但是为了保证 ...
- TODO:小程序开发过程之体验者
TODO:小程序开发过程之体验者 1. 小程序开发过程,先下载开发者并安装开发者工具,现在腾讯开放测试了,普通用户也可以登录开发者工具,如图普通用户登录为调试类型,但是只能建立无AppID的项目 如果 ...
- TODO:即将开发的第一个小程序
TODO:即将开发的第一个小程序 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验.个人理解小程序是寄宿在微信平台上的一个前端框架,具有跨平台功能, ...
- 微信小程序体验(2):驴妈妈景区门票即买即游
驴妈妈因为出色的运营能力,被腾讯选为首批小程序内测单位.驴妈妈的技术开发团队在很短的时间内完成了开发任务,并积极参与到张小龙团队的内测问题反馈.驴妈妈认为,移动互联网时代,微信是巨大的流量入口,也是旅 ...
随机推荐
- POJ 3692 Kindergarten (补图是二分图的最大团问题)
题意 幼稚园里有m个男孩和n个女孩(m.n范围都是[1,200]),男孩之间相互认识,女孩之间也相互认识,另外有部分男孩和女孩也认识.现在要举办一个活动,选取一些同学,要求所有选取的同学之间两两相互认 ...
- HDU 5319 Painter (模拟)
题意: 一个画家画出一张,有3种颜色的笔,R.G.B.R看成'\',B看成'/',G看成这两种的重叠(即叉形).给的是一个矩阵,矩阵中只有4种符号,除了3种颜色还有'.',代表没有涂色.问最小耗费多少 ...
- 【Java】MD5加密
package sdfg; import java.math.BigInteger; import java.security.MessageDigest; import java.security. ...
- Hadoop2.6.0完全分布式安装
本文地址:http://www.cnblogs.com/myresearch/p/hadoop-full-distributed-operation.html,转载请注明源地址. 我这边是使用了两台主 ...
- tar 实现增量备份
使用 tar -g 参数进行增量备份实验 完整备份: #执行完整备份tar -g snapshot -zcf back.tar.gz back #查看 tarball 内容[huzi@mail ~]$ ...
- poj 2923(状态压缩dp)
题意:就是给了你一些货物的重量,然后给了两辆车一次的载重,让你求出最少的运输次数. 分析:首先要从一辆车入手,搜出所有的一次能够运的所有状态,然后把两辆车的状态进行合并,最后就是解决了,有两种方法: ...
- DDoS攻防战(一):概述
原文出处: 陶辉的博客 欢迎分享原创到伯乐头条 (此图摘自<Web脚本攻击与防御技术核心剖析>一书,作者:郝永清先生) DDoS,即 Distributed Denial of Ser ...
- 自定义控件如何给特殊类型的属性添加默认值 z
定义控件如何给特殊类型的属性添加默认值了,附自定义GroupBox一枚 标题有点那啥,但确实能表达我掌握此法后的心情. 写自定义控件时往往会有一个需求,就是给属性指定一个默认值(就是可以在VS中右键该 ...
- rand.Read() 和 io.ReadFull(rand.Reader) 的区别?
golang的随机包 rand.go 中我们可以看到 rand.Read 其实是调用的io.Reader.Read() 1: // Package rand implements a cryptogr ...
- VC远控(二)连接Server端及密码验证
首先服务端是一个win32console应用程序. 在建立项目的时候需要勾选MFC 套接字的初始化同客户端相似: //对套接字进行初始化 WSADATA wsadata; WORD ver = MAK ...