文件Copy有以下几种方法,下面通过程序实例来介

作者: 网络资讯  发布:2019-11-07

C# 文件Copy,

文件Copy有以下几种方法:

1.Copy

string sourceFile = @"c:tempNew Text Document.txt"; 
string destinationFile = @"c:temptest.txt"; 
bool isrewrite=true; // true=覆盖已存在的同名文件,false则反之
System.IO.File.Copy(sourcePath, targetPath, isrewrite); 

 

2.CopyTo

string sourceFile = @"c:tempNew Text Document.txt"; 
string destinationFile = @"c:temptest.txt"; 
FileInfo file = new FileInfo(sourceFile); 
if (file.Exists) 
{ 
    // true is overwrite 
    file.CopyTo(destinationFile, true); 
} 

 

3.使用文件流读写来实现Copy

#region 拷贝操作
private void button3_Click(object sender, EventArgs e)
{
    OpenFileDialog ofd = new OpenFileDialog();
    DialogResult res = ofd.ShowDialog();
    if (res == DialogResult.OK) 
    {
        if (!string.IsNullOrEmpty(ofd.FileName))
        {
            //1.创建读入文件流对象
            FileStream streamRead = new FileStream(ofd.FileName, FileMode.Open);
            //2.创建1个字节数组,用于接收文件流对象读操作文件值
            byte[] data = new byte[1024 * 1024];//1M
            int length = 0;
            SaveFileDialog sfd = new SaveFileDialog();
            DialogResult sres = sfd.ShowDialog();
            if (sres == DialogResult.OK)
            {
                if (!string.IsNullOrEmpty(ofd.FileName))
                {
                    FileStream streamWrite = new FileStream(sfd.FileName, FileMode.Create);
                    do
                    {
                        //3.文件流读方法的参数1.data-文件流读出数据要存的地方,2. 0--从什么位置读,3. data.Length--1次读多少字节数据
                        //3.1 Read方法的返回值是一个int类型的,代表他真实读取 字节数据的长度,
                        length = streamRead.Read(data, 0, data.Length);//大文件读入时候,我们定义字节长度的可能会有限,如果文件超大,要接收文件流对象的Read()方法,会返回读入的实际长度
                        //加密 和解密
                        for (int i = 0; i < length; i  ) 
                        {
                             data[i] = (byte)(255 - data[i]);
                        }
                            streamWrite.Write(data, 0, length);
                    } while (length == data.Length); //如果实际写入长度等于我们设定的长度,有两种情况1.文件正好是我们设定的长度2.文件超大只上传了截取的一部分
                }
            }
        }
    }
}
#endregion   

 

本文引自:

文件Copy, 文件Copy有以下几种方法: 1.Copy string sourceFile = @" c:tempNew Text Document.txt " ; string destinationFile = @" c:temptest.txt " ; bool isrewrite=...

读取txt文件

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

首先要熟悉.NET中处理文件和文件夹的操作。File类和Directory类是其中最主要的两个类。了解它们将对后面功能的实现提供很大的便利。 
     本节先对和文件系统相关的两个.NET类进行简要介绍。 
  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 

------读取的数据比较小的时候:

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

  该方法声明如下: 

如果你要读取的文件内容不是很多,可以使用 File.ReadAllText(filePath) 或指定编码方式 File.ReadAllText(FilePath, Encoding)的方法。它们都一次性将文本内容全部读完,并返回一个包含全部文本内容的字符串

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

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(); 
  System.IO.Directory类和System.DirectoryInfo类 
  主要提供关于目录的各种操作,使用时需要引用System.IO命名空间。下面通过程序实例来介绍其主要属性和方法。 
  (1) 目录创建方法:Directory.CreateDirectory 
  该方法声明如下: 
public static DirectoryInfo CreateDirectory(string path); 
  下面的代码演示在c:/tempuploads文件夹下创建名为NewDirectory的目录。 
private void MakeDirectory()
{
 Directory.CreateDirectory(@"c:/tempuploads/NewDirectoty"); 

  (2) 目录属性设置方法:DirectoryInfo.Atttributes 
  下面的代码设置c:/tempuploads/NewDirectory目录为只读、隐藏。与文件属性相同,目录属性也是使用FileAttributes来进行设置的。 
private void SetDirectory()
{
 DirectoryInfo NewDirInfo = new DirectoryInfo(@"c:/tempuploads/NewDirectoty");
 NewDirInfo.Atttributes = FileAttributes.ReadOnly|FileAttributes.Hidden;

  (3) 目录删除方法:Directory.Delete 
  该方法声明如下: 
public static void Delete(string path,bool recursive); 
  下面的代码可以将c:/tempuploads/BackUp目录删除。Delete方法的第二个参数为bool类型,它可以决定是否删除非空目录。如果该参数值为true,将删除整个目录,即使该目录下有文件或子目录;若为false,则仅当目录为空时才可删除。 
private void DeleteDirectory()
{
 Directory.Delete(@"c:/tempuploads/BackUp",true);

  (4) 目录移动方法:Directory.Move 
  该方法声明如下: 
public static void Move(string sourceDirName,string destDirName); 
  下面的代码将目录c:/tempuploads/NewDirectory移动到c:/tempuploads/BackUp。 
private void MoveDirectory()
{
 File.Move(@"c:/tempuploads/NewDirectory",@"c:/tempuploads/BackUp");

用string接收

该方法的声明如下:

string str1 = File.ReadAllText(@"c:tempa.txt"); //也可以指定编码方式
string str2 = File.ReadAllText(@"c:tempa.txt", Encoding.ASCII);

public static FileStream Open(string path,FileMode mode)   

也可以使用方法File.ReadAllLines,该方法一次性读取文本内容的所有行,返回一个字符串数组,数组元素是每一行的内容

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

string[] strs1 = File.ReadAllLines(@"c:tempa.txt"); 
// 也可以指定编码方式 
string[] strs2 = File.ReadAllLines(@"c:tempa.txt", Encoding.ASCII); 

private void OpenFile()
{
 FileStream.TextFile=File.Open(@"c:tempuploadsnewFile.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()

当文本的内容比较大时,我们就不要将文本内容一次性读完,而应该采用流(Stream)的方式来读取内容。

该方法的声明如下:

  .Net为我们封装了StreamReader类,它旨在以一种特定的编码从字节流中读取字符。StreamReader类的方法不是静态方法,所以要使用该类读取文件首先要实例化该类,在实例化时,要提供读取文件的路径。

public static FileStream Create(string path;)  

StreamReader sR1 = new StreamReader(@"c:tempa.txt");

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

本文由巴黎人游戏官网发布于网络资讯,转载请注明出处:文件Copy有以下几种方法,下面通过程序实例来介

关键词: