如何在 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)等等,且所写的目标代码适用于微 ...
随机推荐
- RF Setup和Teardown的使用
执行顺序 setup执行顺序是:project级别setup>suite级别setup>case级别setup 无返回值 Run Keywords | [KW1 | arg1 | arg2 ...
- C++ 操作符重载实践 & java没有重载操作符的思路
实践如下: #include <iostream> using namespace std; class Book{ private: int page; public: Book(int ...
- IDEA创建maven各种原型项目汇总
1: internal -> appfuse-basic-jsf (创建一个基于Hibernate,Spring和JSF的Web应用程序的原型) 2: internal -> appfus ...
- leetcode 172. Factorial Trailing Zeroes(阶乘的末尾有多少个0)
数字的末尾为0实际上就是乘以了10,20.30.40其实本质上都是10,只不过是10的倍数.10只能通过2*5来获得,但是2的个数众多,用作判断不准确. 以20的阶乘为例子,造成末尾为0的数字其实就是 ...
- Git-Runoob:Git 标签
ylbtech-Git-Runoob:Git 标签 1.返回顶部 1. Git 标签 如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签. 比如说,我 ...
- nohup及pip命令总结
最近在搭建Python的Web开发环境的时候,用到nohup和pip等一些工具,先简单总结一下,以备后续查用. 1.nohup nohup(no hang up)就是不挂断的意思,如果你正在运行一个进 ...
- Jmeter(七)参数化
初识Jmeter的时候, 除了感觉安装和配置都很轻量以外, 还有一个最大的感触就是, 翻译真硬啊, 真的够够的! 和他磨合了挺长一段时间之后, 终于开悟了, 这些硬硬的翻译, 其实还是基本靠谱的, 看 ...
- jeecg bpm流程节点流程节点配置
流程节点 流程节点 cgFormBuildController.do?ftlForm&tableName=jform_leave&mode=onbutton&ftlVersio ...
- 对于富文本编辑器中使用lazyload图片懒加载
使用lazyload.js图片懒加载的作用是给用户一个好的浏览体验,同时对服务器减轻了压力,当用户浏览到该图片的时候再对图片进行加载,项目中使用lazyload的时候需要将图片加入data-orgin ...
- Maven从入门到精通(二)
上一篇我们讲解了Maven项目的基本目录结构,也已经安装了Maven的开发环境,接下来我们要重点讲解一下Maven最核心的灵魂pom.xml文件 POM:Project Object Model 项目 ...