如何在 Visual C# 中执行基本的文件 I/O
演示文件 I/O 操作
本文中的示例讲述基本的文件 I/O 操作。“分步示例”部分说明如何创建一个演示下列六种文件 I/O 操作的示例程序:
注意:如果要直接使用下列示例代码,请注意下列事项:
必须包括 System.IO 命名空间,如下所示:
using System.IO;
按如下方式声明 winDir 变量:
string winDir=System.Environment.GetEnvironmentVariable("windir");
按如下方式声明 addListItem 函数:
private void addListItem(string value){ this.listbox1.Items.Add(value);}
注意:可以直接使用下列语句,而不用声明和使用 addListItem 函数:
this.listbox1.Items.Add(value);"
读取文本文件
下面的示例代码使用 StreamReader 类读取 System.ini 文件。该文件的内容被添加到一个 ListBox 控件中。其中的 try...catch 块用于在文件为空时向程序发出警报。有多种方法可确定是否到达文件结尾;本示例使用 Peek 方法在读取下一行之前先检验该行。
StreamReader reader=new StreamReader(winDir + "//system.ini");
try
{
do
{ addListItem(reader.ReadLine()); }
while(reader.Peek() != -1); }
catch
{ addListItem("File is empty");}
finally
{ reader.Close(); }
写入文本文件
此示例代码使用一个 StreamWriter 类来创建一个文件并写入信息。如果已有一个现有文件,则可以用同样的方式打开它。
StreamWriter writer = new StreamWriter("c://KBTest.txt");
writer.WriteLine("File created using StreamWriter class.");
writer.Close(); this.listbox1.Items.Clear();
addListItem("File Written to C://KBTest.txt");
查看文件信息
此示例代码使用一个 FileInfo 对象来访问一个文件的属性。此示例中使用了 Notepad.exe。属性在 ListBox 控件中显示。
FileInfo FileProps =new FileInfo(winDir + "//notepad.exe");
addListItem("File Name = " + FileProps.FullName);
addListItem("Creation Time = " + FileProps.CreationTime);
addListItem("Last Access Time = " + FileProps.LastAccessTime);
addListItem("Last Write TIme = " + FileProps.LastWriteTime);
addListItem("Size = " + FileProps.Length);
FileProps = null;
列出磁盘驱动器
此示例代码使用 Directory 和 Drive 类列出系统上的逻辑驱动器。本示例的结果显示在 ListBox 控件中。
string[] drives = Directory.GetLogicalDrives();
foreach(string drive in drives)
{ addListItem(drive); }
列出子文件夹
此示例代码使用 Directory 类的 GetDirectories 方法获取文件夹列表。
string[] dirs = Directory.GetDirectories(winDir);
foreach(string dir in dirs)
{ addListItem(dir); }
列出文件
此示例使用 Directory 类的 GetFiles 方法获取文件夹列表。
string[] files= Directory.GetFiles(winDir);
foreach (string i in files)
{ addListItem(i); }
用户访问文件时可能会出现多种错误。文件可能不存在、可能在使用中,或者用户对试图访问的文件夹中的文件无访问权限。在编写代码和处理可能产生的异常时,将这些可能性考虑在内是很重要的。
原作者地址连接:http://blog.csdn.net/zhoufoxcn/article/details/1346256
如何在 Visual C# 中执行基本的文件 I/O的更多相关文章
- 如何在 Visual Studio 中使用 Git 同步代码到 CodePlex
开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framework.ASP.Net MVC等框架的逐渐开源,也让大家看到了微软开源的步伐.CodePlex 则是 ...
- [转]如何在 Visual Studio 中使用 Git 同步代码到 CodePlex
本文转自:http://www.cnblogs.com/stg609/p/3673782.html 开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framew ...
- 如何在Visual Studio中选择C++和C#的编译器版本
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何在Visual Studio中选择C++和C#的编译器版本.
- [译]如何在visual studio中调试Javascript
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- 如何在c#代码中执行带GO语句的SQL文件
需要在C#代码中执行一个SQL文件的内容.遇到了两个问题: 1. 因为SQL文件中有"GO"语句,执行时报错"Incorrect syntax near 'GO'.& ...
- Spring Security 是如何在 Servlet 应用中执行的?
Spring Security 是一个强大的认证和授权框架,它的使用方式也非常简单,但是要想真正理解它就需要花一时间来学习了,最近在学习 Spring Security 时有一些新的理解,特意记录下来 ...
- 在Visual Studio中开发Matlab mex文件,生成mexw64/mexw32
csunking贡献,2015-9-22 1712 1. 概述 通过使用C/C++与Matlab混合编程,既可以享受到C代码快速执行的速度,又可以方便的使用Matlab众多的库函数和强大的绘图功能 ...
- Visual Studio 中使用万能头文件 #include <bits/stdc++.h>
最近开始使用VS,之前用的DEV C++软件可直接使用 #include <bits/stdc++.h> ,但VS中并没有,为了使用方便,可直接在VS中添加此头文件,方法如下: 1.在安 ...
- 如何在Visual Studio中开发自己的代码生成器插件
Visual Studio是美国微软公司开发的一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具.代码管控工具.集成开发环境(IDE)等等,且所写的目标代码适用于微 ...
随机推荐
- 浏览器端-3WSchool-JavaScript:JavaScript Boolean 对象
ylbtech-浏览器端-3WSchool-JavaScript:JavaScript Boolean 对象 1.返回顶部 1. Boolean 对象 Boolean 对象表示两个值:"tr ...
- CentOS7环境下yum方式安装MySQL5.7
这篇博文主要是从网上摘抄的,做个记录,以后如果有同样的需求,可以直接翻自己的记录.感谢两位大神: https://www.cnblogs.com/luohanguo/p/9045391.html ht ...
- leaflet的入门开发(一)
2016年9月27日—1.0leaflet,最快的,最稳定和严谨的leaflet,终于出来了! leaflet是领先的开源JavaScript库为移动设备设计的互动地图.重33 KB的JS,所有映射大 ...
- XSS的简单过滤和绕过
XSS的简单过滤和绕过 程序猿用一些函数将构成xss代码的一些关键字符给过滤了.但是,道高一尺魔高一丈,虽然过滤了,还是可以尝试进行过滤绕过,以达到XSS攻击的目的. 最简单的是输入<scrip ...
- vue中,基于echarts 地图实现一个人才回流的大数据展示效果
0.引入echarts组件,和中国地图js import eCharts from 'echarts' import 'echarts/map/js/china.js'// 引入中国地图 1. 设置地 ...
- flask config笔记
#从flask这个包中导入Flask这个类 #Flask这个类是项目的核心,以后很多操作都是基于这个类的对象 #注册url.注册蓝图等都是基于这个类的对象 from flask import Flas ...
- spring aop之父子容器
需求;项目对外提供接口,要求每个对外接口都要进行token认证. 解决办法:写一个token认证的工具类,在每个需要认证的接口方法开始的地方,调用工具类中的token认证方法. 问题:因为要满足指定条 ...
- springboot -- 2.0版本自定义ReidsCacheManager的改变
1. 问题发现 在1.0版本中,我们配置redis的cacheManager是这种方式: //缓存管理器 @Bean public CacheManager cacheManager(@Suppres ...
- ctrNet库介绍
一个神秘网友写的代码库,膜拜,附上下载链接:https://github.com/guoday/ctrNet-tool 似乎是专门为点击率预估写的库??? 收藏,日后慢慢研究
- C++中的单例类模板
1,本节课讲述单例类模式,实现并抽取相关代码实现单例类模板,在以后开发工作 中,如果想要使用单例模式,那么直接使用今天开发的单例类模板就可以: 2,需求的提出: 1,在架构设计时,某些类在整个系统生命 ...