如何在 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)等等,且所写的目标代码适用于微 ...
随机推荐
- mesh之孔洞检测
mesh之孔洞检测 图1 检测孔洞点 图2 检测孔洞点 图3 检测孔洞点 图4 细节
- Docker-----版本选择
版本演变 17.03 版本以前 Docker CE 在 17.03 版本之前叫 Docker Engine, Docker Engine 的版本号范围: 0.1.0 ~ 1.13.1 17.03 版本 ...
- leetcode 509斐波那契数列
递归方法: 时间O(2^n),空间O(logn) class Solution { public: int fib(int N) { ?N:fib(N-)+fib(N-); } }; 递归+记忆化搜索 ...
- 四十四:数据库之SQLAlchemy之join实现复杂查询
准备工作 from datetime import datetime from sqlalchemy import create_engine, Column, Integer, String, Da ...
- PPT鼠绘必须掌握的PPT绘图三大核心功能
在PPT制作教程栏目中,陆陆续续的分享了一系列通过合并形状功能来绘图的教程,绘制安卓机器人.绘制西瓜.绘制鸡蛋.其实,合并形状功能只是PPT绘图的一部分,而真正想要掌握PPT鼠绘,仅仅是会使用合并形状 ...
- CentOS7中SSH免密登陆设置
一.准备三台客户机 hadoop100 192.168.13.100(Master) hadoop101 192.168.13.101 hadoop102 192.168.13.102 二.在hado ...
- Laravel中一些要记住 的写法
模型篇: 1.根据数据库部分URL返回完整的URL public function getImageUrlAttribute() { // 如果 image 字段本身就已经是完整的 url 就直接返回 ...
- Hbase 0.92.1 Replication
原集群 服务器名称 服务 sht-sgmhadoopnn-01 Master,NameNode,JobTracker sht-sgmhadoopdn-01 RegionServer,DataNode, ...
- Oracle 查看 impdp 正在执行的内容
1. 今天进行数据库备份恢复 一直卡住 找了一下 公司另外一个部门的方神提供了一个方法连查看 具体在做什么操作: 2. 现象. impdp 到一个地方直接卡住不动 具体位置 view 这个地方足足卡 ...
- 面试题 | 数据库笔试题集合·之·SQL语句(2)
第2章 SQL 语句 2.1 选择2.1.1 DELETE FROM S WHERE 年龄>60 语句的功能是( A ) A.从 S 表中彻底删除年龄大于 60 岁的记录B.S 表中年龄大于 6 ...