C# File类的操作

File类,是一个静态类,主要是来提供一些函数库用的。静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,移动,删除和打开一个文件。File类方法的参量很多时候都是路径pathFile的一些方法可以返回FileStreamStreamWriter的对象。可以和他们配套使用。

System.IO.File类和System.IO.FileInfo类主要提供有关文件的各种操作,在使用时需要引用System.IO命名空间。下面通过程序实例来介绍其主要属性和方法。

(1) 文件打开方法:File.Open ()

该方法的声明如下:

public static FileStream Open(string path,FileMode mode) 

下面的代码打开存放在c:\tempuploads目录下名称为newFile.txt文件,并在该文件中写入hello。

private void OpenFile()
{FileStream.TextFile=File.Open(@"c:\tempuploads\newFile.txt",FileMode.Append);byte [] Info = {(byte)'h',(byte)'e',(byte)'l',(byte)'l',(byte)'o'};TextFile.Write(Info,0,Info.Length);TextFile.Close();
}

(2) 文件创建方法:File.Create()

该方法的声明如下:

public static FileStream Create(string path;)

 

下面的代码演示如何在c:\tempuploads下创建名为newFile.txt的文件。
由于File.Create方法默认向所有用户授予对新文件的完全读/写访问权限,所以文件是用读/写访问权限打开的,必须关闭后才能由其他应用程序打开。为此,所以需要使用FileStream类的Close方法将所创建的文件关闭。

private void MakeFile()
{  FileStream NewText=File.Create(@"c:\tempuploads\newFile.txt");NewText.Close();
} 

(3) 文件删除方法:File.Delete()


该方法声明如下:

public static void Delete(string path);

下面的代码演示如何删除c:\tempuploads目录下的newFile.txt文件。

private void DeleteFile()
{File.Delete(@"c:\tempuploads\newFile.txt");
}

(4) 文件复制方法:File.Copy

该方法声明如下:

public static void Copy(string sourceFileName,string destFileName,bool overwrite);

下面的代码将c:\tempuploads\newFile.txt复制到c:\tempuploads\BackUp.txt。
由于Cope方法的OverWrite参数设为true,所以如果BackUp.txt文件已存在的话,将会被复制过去的文件所覆盖。

private void CopyFile()
{File.Copy(@"c:\tempuploads\newFile.txt",@"c:\tempuploads\BackUp.txt",true);
}

(5) 文件移动方法:File.Move

该方法声明如下:

public static void Move(string sourceFileName,string destFileName); 

下面的代码可以将c:\tempuploads下的BackUp.txt文件移动到c盘根目录下。


注意:
只能在同一个逻辑盘下进行文件转移。如果试图将c盘下的文件转移到d盘,将发生错误。

private void MoveFile()
{File.Move(@"c:\tempuploads\BackUp.txt",@"c:\BackUp.txt");
}

(6) 设置文件属性方法:File.SetAttributes
 

该方法声明如下:

public static void SetAttributes(string path,FileAttributes fileAttributes);

下面的代码可以设置文件c:\tempuploads\newFile.txt的属性为只读、隐藏。

private void SetFile()
{File.SetAttributes(@"c:\tempuploads\newFile.txt",FileAttributes.ReadOnly|FileAttributes.Hidden);
}

文件除了常用的只读和隐藏属性外,还有Archive(文件存档状态),System(系统文件),Temporary(临时文件)等。关于文件属性的详细情况请参看MSDN中FileAttributes的描述。

(7) 判断文件是否存在的方法:File.Exist
 

该方法声明如下:

public static bool Exists(string path); 

下面的代码判断是否存在c:\tempuploads\newFile.txt文件。若存在,先复制该文件,然后其删除,最后将复制的文件移动;若不存在,则先创建该文件,然后打开该文件并进行写入操作,最后将文件属性设为只读、隐藏。

if(File.Exists(@"c:\tempuploads\newFile.txt")) //判断文件是否存在
{CopyFile(); //复制文件DeleteFile(); //删除文件MoveFile(); //移动文件
}
else
{MakeFile(); //生成文件OpenFile(); //打开文件SetFile(); //设置文件属性
}

此外,File类对于Text文本提供了更多的支持。


· AppendText:将文本追加到现有文件
· CreateText:为写入文本创建或打开新文件
· OpenText:打开现有文本文件以进行读取


但上述方法主要对UTF-8的编码文本进行操作,从而显得不够灵活。在这里推荐读者使用下面的代码对txt文件进行操作。
· 对txt文件进行“读”操作,示例代码如下:

StreamReader TxtReader = new StreamReader(@"c:\tempuploads\newFile.txt",System.Text.Encoding.Default);
string FileContent;
FileContent = TxtReader.ReadEnd();
TxtReader.Close();

· 对txt文件进行“写”操作,示例代码如下:

StreamWriter = new StreamWrite(@"c:\tempuploads\newFile.txt",System.Text.Encoding.Default);
string FileContent;
TxtWriter.Write(FileContent);
TxtWriter.Close(); 

以上图片由“图斗罗”提供

转载于:https://www.cnblogs.com/ldyblogs/p/file.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571861.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序动态点赞php,在微信小程序中如何实现点赞功能

这篇文章主要介绍了微信小程序基于本地缓存实现点赞功能的方法,涉及微信小程序界面布局、事件响应及缓存操作等相关实现技巧,需要的朋友可以参考下本文实例讲述了微信小程序基于本地缓存实现点赞功能的方法。分享给大家供大家参考,具体如下:wxml中的写法…

lstm需要优化的参数_LSTM的物理结构和一些细节

海晨威:一幅图真正理解LSTM的物理结构​zhuanlan.zhihu.com这个是网上看的最多的图了,但是在理解lstm的应用过程中的时候这个图带来了不少麻烦。展开之后实际的物理结构是这样的,1、2图同颜色的点代表了同一个东西;问题1&#xff…

OLED中的Demura

OLED作为一种电流型发光器件已越来越多地被应用于高性能显示中。由于它自发光的特性,与LCD相比,AMOLED具有高对比度、超轻薄、可弯曲等诸多优点。但是,亮度均匀性和残像仍然是它目前面临的两个主要难题,要解决这两个问题&#xff…

python的编程模式有哪两种_python程序的两种运行方式是什么

python程序的两种运行方式是什么 第一种方式:REPL 所谓REPL即read、eva、print、loop(读取、计算、打印、循环),实现REPL运行方式有以下两种: 1、IDLE( 集成开发环境或集成开发和学习环境)是Pyt…

对Linux命令od -tc -tx1的C语言程序实现myod-优化版

导语 自编od C语言实现版名为myod上个星期有一个初代版,链接- myod原版这星期的课上要求实现myod-系统调用版本,要求如下 1 参考教材第十章内容 2 用Linux IO相关系统调用编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能,注意XXX是文件…

python字典求平均值_Python 3.4 – 如何获得字典值的平均值?

好吧,让我们迭代所有字典键并平均项目: avgDict {} for k,v in StudentGrades.iteritems(): # v is the list of grades for student k avgDict[k] sum(v)/ float(len(v)) 现在你可以看到: avgDict Out[5]: {Ivan: 3.106666666666667, Martin: 4.81666…

PHP使用指南,PHP使用指南-cookies部分

php使用指南-cookies部分在这课教程我们将学习怎样利用 PHP 处理cookies,我将试着使事情尽可能简单地去解释cookies的一些实际应用。什么是cookies及作用?cookies是由web服务器产生的并且存在客户端的一些信息。它嵌在html信息中,由服务器端指定&#xf…

python猜数字游戏猜n次_python实践项目四:猜数字游戏

1 #!/usr/bin/python 2 #-*- coding: UTF-8 -*- 3 4 importrandom5 secretNumberrandom.randint(1,20)6 print "Im thinking of a number between 1 and 20." 7 times 08 for i in range(1,7):9 print "Take a guess:" 10 guessint(input())11 if guess

使用Linux记录

更新时间: 2018-12-12 Linux Usage 缘起:最近将系统更换为Linux,虽然之前有用过,但只是当作尝试,未当为主系统,这次下定决心以它为主系统,懒得去纠结使用win的一种不道德感及不爽感,游戏及娱乐与…

使用java实现rfc3161,openssl验证用自签名证书签名的RFC3161时间戳

我使用openssl从rfc 3161 timestampreq生成了一个rfc3161 timestampresp。因此,我使用了自签名CA证书和自签名CA使用以下命令颁发的TSA证书:openssl ts -reply -queryfile request.tsq -signer TSAcert.pem -out response.tsr已创建响应。openssl ts -reply -text -in response…

halcon 旋转_Halcon视觉软件应该如何系统学习?

End 声明:部分内容来源于网络,仅供读者学习、交流之目的。文章版权归原作者所有。如有不妥,请联系删除。

java使用重复的类库,java list 去除 重复值

一:Hastset根据hashcode判断是否重复,数据不会重复Java代码/** List order not maintained **/public static void removeDuplicate(ArrayList arlList){HashSet h new HashSet(arlList);arlList.clear();arlList.addAll(h);}二:通过Hashset…

JavaScript--关于变量提升思考

下面例子仅仅是思考变量提升使用: 在实际开发中并不推荐使用相同名字的变量和函数! 1 // 如果变量和函数同名的话,函数优先提升 2 console.log(a); 3 function a() { 4 console.log(aaaaa); 5 } 6 var a 1; 7 console.log(a); 更多简单经典…

C++求复数的角度_【研读.教材分析】“勾股定理”教学——基于单元整体的角度再思考...

(西安市第八十六中学 刘丽丽)学科教学要注重知识的“生长点”和“延伸点”,把课时知识置于学科整体逻辑体系中,关注结构和通法,处理好局部与整体之间的关系。所以在北师大版八年级上册数学第一章《勾股定理》的备课中,我再次以问…

java 十进制 左移,java移位运算符之十进制转二进制

本次MS08-067严重漏洞各系统补丁地址如下:中文操作系统KB958644补丁下载地址:Windows Vista 安全更新程序 (KB958644)Windows Server 2008 x64 Edition 安全更新程序 (KB958644)Windows Server 2003 x64 Edition 安全更新程序 (KB958644)Windows Server …

angualr 单选全选方法(适用购物车/各种列表删除等)

Html部分&#xff1a; <table class"pay_attention_table"><thead><tr><!--ng-click"all(selectAll)"--><th class"c_aa w52"><input type"checkbox" class"mr4" ng-model"selectObj…

vc++64位系统下long的长度为4个字节_Java与系统硬件的亲密接触「伪共享」

作者&#xff1a;码洞来源&#xff1a;https://zhuanlan.zhihu.com/p/32764602在解释【伪共享】这个概念之前&#xff0c;我们先来运行一段代码&#xff0c;小编的电脑上有4个core。这个程序的逻辑是4个线程共享同一个数组读写不同下标的变量。每个线程循环1亿次读写&#xff0…

快捷登录PHP,phpcms 微信快捷登陆

上一篇文章&#xff0c;给大家分享了关于微信授权登陆功能&#xff0c;今天给大家分享一个微信快捷登陆的实际用例。phpcms接入微信快捷登陆第一步&#xff0c;在login方法中&#xff0c;判定是否使用微信浏览器访问&#xff0c;如果是&#xff0c;发起授权申请if ( strpos($_S…

linux 端口号查看

linux 端口号查看netstat -anp |grep 端口号最后一列是端口号转载于:https://www.cnblogs.com/ditmark/p/7669804.html

pwm波如何控制电机代码_PWM波控制720电机

详细方案四&#xff1a;pwm与720电机控制电机硬件分析什么是电机&#xff1f;电机(俗称"马达")是指依据电磁感应定律实现电能转换或传递的一种电磁装置。它的主要作用是产生驱动转矩&#xff0c;作为用电器或各种机械的动力源。其中本四轴采用的电机是直流电机。直流…