c#IO的学习
常见应用方面
一、路径的相关操作,如判定路径是否合法,路径类型,路径的特定部分,合并路径,系统文件夹路径等内容;
二、相关通用文件对话框,这些对话框可以帮助我们操作文件系统中的文件和目录;
三、文件、目录、驱动器的操作,如获取它们的基本信息,获取和设置文件和目录的属性,文件的版本信息,
搜索文件和目录,文件判等,复制、移动、删除、重命名文件和目录;
四、读写文件,包括临时文件,随机文件名等;
五、对文件系统的监视;
应用:问题1:如何判定一个给定的路径是否有效/合法;
解决方案:通过Path.GetInvalidPathChars或Path.GetInvalidFileNameChars方法获得非法的路径/文件名字符,可以
根据它来判定路径中是否包含非法字符;
C#快速剔除字符串中不合法的文件名
string strFileName= "文件名称";
StringBuilder rBuilder = new StringBuilder(strFileName);
foreach(char rInvalidChar in Path.GetInvalidFileNameChars())
rBuilder.Replace(rInvalidChar.ToString(), string.Empty); C#快速剔除字符串中不合法的文件路径字符
string rPath = "路径";
StringBuilder rBuilder = new StringBuilder(rPath);
foreach(char rInvalidChar in Path.GetInvalidPathChars())
rBuilder.Replace(rInvalidChar.ToString(), string.Empty); 问题2:如何确定一个路径字符串是表示目录还是文件; 解决方案:
1、使用Directory.Exists或File.Exist方法,假如前者为真,则路径表示目录;假如后者为真,则路径表示文件; 2、上面的方法有个缺点就是不能处理那些不存在的文件或目录。这时可以考虑使用Path.GetFileName方法获得
其包含的文件名,假如一个路径不为空,而文件名为空那么它表示目录,否则表示文件;
MessageBox.Show(Path.GetFileName(@"D:\release\show.bat"));
问题3:如何获得路径的某个特定部分(如文件名、扩展名等);
解决方案:
下面是几个相关方法: Path.GetDirectoryName:返回指定路径字符串的目录信息; Path.GetExtension:返回指定的路径字符串的扩展名; Path.GetFileName:返回指定路径字符串的文件名和扩展名; Path.GetFileNameWithoutExtension:
返回不具有扩展名的路径字符串的文件名; Path.GetPathRoot:获取指定路径的根目录信息;
问题4:如何准确地合并两个路径而不用去担心那个烦人的”\”字符; 解决方案:
使用Path.Combine方法,它会帮你处理烦人的”\”;
c#IO的学习的更多相关文章
- Java IO流学习总结三:缓冲流-BufferedInputStream、BufferedOutputStream
Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/ ...
- Java IO流学习总结八:Commons IO 2.5-IOUtils
Java IO流学习总结八:Commons IO 2.5-IOUtils 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/550519 ...
- Java IO流学习总结(1)
Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本 ...
- Java IO流学习总结四:缓冲流-BufferedReader、BufferedWriter
在上一篇文章中Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream介绍了缓冲流中的字节流,而这一篇着重介绍缓冲流中字符流Buffered ...
- Java IO流学习总结一:输入输出流
Java IO流学习总结一:输入输出流 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54292148 本文出自[赵彦军的博客] J ...
- Java IO流学习
Java IO流学习 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是 ...
- 系统吞吐量(TPS)、用户并发量、性能测试、IO负载学习
目录 . 如何评价一个系统的性能 . 系统吞度量 . 网络上下行数据量 . 客户端-服务端TCP同时长连接数量 . 系统性能的指标计算 . 系统IO负载 1. 如何评价一个系统的性能 在文章的开始,我 ...
- IO流学习小结
今天刚刚看完java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理 ...
- JAVA.IO流学习笔记
一.java.io 的描述 通过数据流.序列化和文件系统提供系统输入和输出.IO流用来处理设备之间的数据传输 二.流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数 ...
- (转载) java:IO流学习小结
今天刚刚看完Java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理 ...
随机推荐
- unix网络编程第2版(卷1)_第6章_同步_异步
第6章 I/O复用:select和poll函数 6.1概述 在5.12节中,我们看到TCP客户同时处理两个输入:标准输入和TCP套接口.我们遇到的问题是客户阻塞于(标准输入上的)fgets调用,而服务 ...
- ng机器学习视频笔记(一)——线性回归、代价函数、梯度下降基础
ng机器学习视频笔记(一) --线性回归.代价函数.梯度下降基础 (转载请附上本文链接--linhxx) 一.线性回归 线性回归是监督学习中的重要算法,其主要目的在于用一个函数表示一组数据,其中横轴是 ...
- CSS继承、层叠和特殊性
1.继承 (1)样式应用于某个特定的HTML标签元素,而且应用于其后代. (2)但某些标签不适用,如border: (3)例子:p{color:red;}设置了颜色 <p class=" ...
- spring之setter注入
setter注入分为2种 第一:普通属性注入 <bean id="userAction" class="com.xx.action.UserAction" ...
- 分享我自己的一个最小化安装CentOS6的初始化脚本
在自己的虚拟机上使用的基于CentOS6的系统初始化脚本 #!/bin/bash # #Filename:system_init.sh #Description:系统安装完成后,对系统进行一些配置,以 ...
- Ubuntu14.04 命令行下安装teamviewer
下载teamviewer 链接:https://pan.baidu.com/s/1hs0BppM 密码:sdmk 上传到 /home/[user] cd /home/[user] 移动安装包到 /o ...
- ABP官方文档翻译 3.2 值对象
值对象 介绍 值对象基类 最佳实践 介绍 "展现领域描述性层面且没有概念性身份的对象称之为值对象."(Eric Evans). 和实体相反,实体有身份标示(Id),值对象没有身份标 ...
- 2017年总结的前端文章——border属性的多方位应用和实现自适应三角形
border属性是在实际的应用中使用频率比较高的一个属性,除了作为边框使用,利用border属性的一些特征以及表现方式,可以在实现一些比较常见的效果(如等高布局,上下固定内容滚动布局和绘制CSS图标等 ...
- SAS SATA SSD基本介绍
SATA硬盘采用新的设计结构,数据传输快,节省空间,相对于IDE硬盘具有很多优势: 1 .SATA硬盘比IDE硬盘传输速度高.目前SATA可以提供150MB/s的高峰传输速率.今后将达到300 MB/ ...
- JDBC为什么要使用PreparedStatement而不是Statement
PreparedStatement是什么? PreparedStatement是java.sql包下面的一个接口,用来执行SQL语句查询,通过调用connection.preparedStatemen ...