编码实现>文件和输入输出(包括)>文件操作

编码实现>文件和输入输出>文件操作>System.IO类介绍

System.IO命名空间有重要的7个类。

·Directory:操作目录的静态方法

·DirectoryInfo:操作目录的实例方法

·DriverInfo:访问驱动器,以及驱动器详细的实例方法

·File:对文件进行操作的静态方法

·FileInfo:对文件惊喜操作的实例方法

·Path:以跨平台的方式处理目录字符串的方法和属性

 

编码实现>文件和输入输出>文件操作>File类通过文件的创建和打开

编码实现>文件和输入输出(包括)>文件操作 File类通过文件的创建和打开
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.IO;

namespace  CreateAndOpen
{
    
class  Program
    {
        
static   void  Main( string [] args)
        {
            
const   string  FilePath  =   @" C:\FileCreateOpenDemo.txt " ;
            
// 使用using,在语句执行完后自动释放资源。
            
// 使用Create方法创建文件。
             using  (FileStream fs  =  File.Create(FilePath))
            {
                
using  (StreamWriter sw  =   new  StreamWriter(fs))
                {
                    sw.WriteLine(
" 这是使用Create创建文件的方法 " );
                    sw.Flush();
                }
            }
            
if  (File.Exists(FilePath))
            {
                File.Delete(FilePath);
            }
            
using  (StreamWriter sw  =  File.CreateText(FilePath))
            {
                sw.WriteLine(
" 这是使用CreateText方法创建文本文件的方法 " );
                sw.Flush();
            }
            Console.WriteLine(
" 使用Open方法打开文件 " );
            
using  (FileStream fs  =  File.Open(FilePath, FileMode.Open))
            {
                
using  (StreamReader sr  =   new  StreamReader(fs))
                {
                    Console.WriteLine(sr.ReadToEnd());
                }
            }
            Console.WriteLine(
" 使用OpenRead方法打开文件 " );
            
using  (FileStream fs  =  File.OpenRead(FilePath))
            {
                
using  (StreamReader sr  =   new  StreamReader(fs))
                {
                    Console.WriteLine(sr.ReadToEnd());
                }
            }
            Console.WriteLine(
" 使用OpenWrite方法打开文件 " );
            
using  (FileStream fs  =  File.OpenWrite(FilePath))
            {
                
using  (StreamWriter sw  =   new  StreamWriter(fs))
                {
                    sw.WriteLine(
" 使用OpenWrite方法写入文件 " );
                    sw.Flush();
                }
            }
            Console.WriteLine(
" 使用OpenText方法打开文本文件 " );
            
using (StreamReader sr = File.OpenText(FilePath))
            {
                Console.WriteLine(sr.ReadToEnd());
            }
            Console.ReadLine();
        }
    }
}


编码实现>文件和输入输出>文件操作>文件的追加

描述:将指定的字符串追加到文件的结尾。

编码实现>文件和输入输出(包括)>文件操作 AppendAllText方法
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.IO;

namespace  FileDemo1
{
    
class  Program
    {
        
static   void  Main( string [] args)
        {
            
const   string  FilePath = @" C:\FileDemo1.txt " ;
            
if  (File.Exists(FilePath))
            {
                Console.WriteLine(
" 文件存在 " );
            }
            
else
            {
                Console.WriteLine(
" 文件不存在 " );
            }
            File.AppendAllText(FilePath, 
" 这是使用File类的AppendAllText方法添加字符串! " + Environment.NewLine);
            File.AppendAllText(FilePath, 
" 这是使用File类的AppendAllText方法添加字符串,并指定编码格式为UTF-8 " , Encoding.UTF8);
            
string  str  =  File.ReadAllText(FilePath);
            Console.WriteLine(str);
            Console.ReadLine();
        }
    }
}


编码实现>文件和输入输出>文件操作>判断一个文件是否存在

编码实现>文件和输入输出(包括)>文件操作 Exists方法
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.IO;

namespace  FileDemo1
{
    
class  Program
    {
        
static   void  Main( string [] args)
        {
            
const   string  FilePath = @" C:\FileDemo1.txt " ;
            
if  (File.Exists(FilePath))
            {
                Console.WriteLine(
" 文件存在 " );
            }
            
else
            {
                Console.WriteLine(
" 文件不存在 " );
            }
            Console.ReadLine();
        }
    }
}


编码实现>文件和输入输出>文件操作>文件的写入

描述,将指定的字符串直接写入文件,WriteAllText会清除现存文件中已有的文本,写入新文本,而AppendAllText则是在现场文件中的尾部添加文本。

编码实现>文件和输入输出(包括)>文件操作 WriteAllText
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.IO;

namespace  WriteAllText
{
    
class  Program
    {
        
static   void  Main( string [] args)
        {
            
const   string  FilePath  =   @" C:\FileDemo1.txt " ;
            File.WriteAllText(FilePath, 
" 这是使用File类的WriteAllText方法添加字符串! "   +  Environment.NewLine);
            File.WriteAllText(FilePath, 
" 这是使用File类的WriteAllText方法添加字符串,并指定编码格式为UTF-8 " , Encoding.UTF8);
            
string  str  =  File.ReadAllText(FilePath);
            Console.WriteLine(str);
            Console.ReadLine();
        }
    }
}


类似的文件写入的方法

编码实现>文件和输入输出(包括)>文件操作 WriteAllLines和WriteAllBytes方法
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.IO;

namespace  WriteAllLinesAndWriteAllBytes
{
    
class  Program
    {
        
static   void  Main( string [] args)
        {
            
const   string  FilePath  =   @" C:\FileDemo1.txt " ;
            
string [] strs  = " 这是 " " 使用 " " WriteAllLines " " 方法 " " 添加 " " 字符串 "  };
            File.WriteAllLines(FilePath, strs);
            File.WriteAllLines(FilePath, strs, Encoding.UTF8);                        
            
string  bytestr =   " 这是使用WriteAllBytes方法添加字节数组 " ;
            
byte [] bytes  =  Encoding.UTF8.GetBytes(bytestr.ToCharArray());
            File.WriteAllBytes(FilePath, bytes);
            
string  str  =  File.ReadAllText(FilePath);
            Console.WriteLine(str);
            Console.ReadLine();
        }
    }
}



编码实现>文件和输入输出>文件操作>文件的读取

编码实现>文件和输入输出(包括)>文件操作 ReadAllBytes方法
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.IO;

namespace  WriteAllLinesAndWriteAllBytes
{
    
class  Program
    {
        
static   void  Main( string [] args)
        {
            
const   string  FilePath  =   @" C:\FileDemo1.txt " ;
            
string [] strs  = " 这是 " " 使用 " " WriteAllLines " " 方法 " " 添加 " " 字符串 "  };
            File.WriteAllLines(FilePath, strs);
            
string [] str2  =  File.ReadAllLines(FilePath);                        
            
string  bytestr =   " 这是使用WriteAllBytes方法添加字节数组 " ;
            
byte [] bytes  =  Encoding.UTF8.GetBytes(bytestr.ToCharArray());
            File.WriteAllBytes(FilePath, bytes);
            
byte [] bytes2  =  File.ReadAllBytes(FilePath);
            
string  str  =  File.ReadAllText(FilePath);
            Console.WriteLine(str);
            Console.ReadLine();
        }
    }
}


编码实现>文件和输入输出>文件操作>文件的复制,删除,移动

File类没有提供对文件进行重命名的方法,可以通过对Move的操作来变通实现。

编码实现>文件和输入输出(包括)>文件操作 文件的复制,删除,移动
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.IO;

namespace  CopyDeleteAndMoveFile
{
    
class  Program
    {
        
static   void  Main( string [] args)
        {
            
const   string  SourceFilePath  =   @" C:\FileDemo1.txt " ;
            
const   string  DestFilePath = @" C:\FileDemoCopy1.txt " ;
            
if  ( ! File.Exists(SourceFilePath))
            {
                File.WriteAllText(SourceFilePath,
" 这是一个示范文件的复制,移动,删除的例子 " );
             }
             Console.WriteLine(
" 文件的复制操作 " );
             File.Copy(SourceFilePath, DestFilePath, 
true );
             Console.WriteLine(
" 文件的删除操作 " );
             File.Delete(DestFilePath);
             Console.WriteLine(
" 文件的移动操作 " );
             File.Move(SourceFilePath, DestFilePath);
             Console.ReadLine();
        }
    }
}


编码实现>文件和输入输出>目录操作类Directory>目录的创建

编码实现>文件和输入输出(包括)>文件操作 代码
// 指定路径名创建文件夹
             public   static  DirectoryInfo CreateDirectory( string  path);
            
// 指定路径名,且指定Windows安全性
             public   static  DirectoryInfo CreateDirectory( string  path,DirectorySecurity directorySecurity);



编码实现>文件和输入输出>目录操作类Directory>目录的移动和删除

编码实现>文件和输入输出(包括)>文件操作 目录的移动和删除
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.IO;

namespace  DirectoryDemo1
{
    
class  Program
    {
        
static   void  Main( string [] args)
        {
            
const   string  sourceFolderPath  =   @" C:\Directorydemo " ;
            
const   string  destFolderPath  =   @" C:\DirectorydemoDest " ;

            
if  ( ! Directory.Exists(sourceFolderPath))
            {
                
// 创建指定路径的目录
                DirectoryInfo di  =  Directory.CreateDirectory(sourceFolderPath);
            }
            
if  (Directory.Exists(destFolderPath))
            {
                
// 删除指定目录,这目录必须是空目录。后面的true表示递归删除目录下的目录
                Directory.Delete(destFolderPath, true );
            }
            
// 从源文件夹转到目标文件夹
            Directory.Move(sourceFolderPath, destFolderPath);            
        }
    }
}


编码实现>文件和输入输出>目录操作类Directory>获取目录的位置

编码实现>文件和输入输出(包括)>文件操作 获取目录的位置
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.IO;

namespace  GetDirectories
{
    
class  Program
    {
        
static   void  Main( string [] args)
        {
            
const   string  FolderPath  =   @" C:\dell\drivers " ;
            
// 获取当前工作目录。
            Console.WriteLine( " 当前的工作目录为{0} " , Directory.GetCurrentDirectory());
            
// 获取以R字符开头的顶层目录,可以指定SearchOption枚举来获取所有的子目录。
             string [] strs  =  Directory.GetDirectories(FolderPath,  " R* " , SearchOption.TopDirectoryOnly);
            
foreach  ( string  str  in  strs)
            {
                Console.WriteLine( str);
            }
            Console.ReadLine();
        }
    }
}


编码实现>文件和输入输出>目录操作类Directory>获取目录中的文件列表

编码实现>文件和输入输出(包括)>文件操作 获取目录中的文件列表
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.IO;

namespace  GetFiles
{
    
class  Program
    {

        
static   void  Main( string [] args)
        {
            
const   string  FolderPath  =   @" C:\dell\drivers " ;
            
// 获取C:\dell\drivers下的所有文件名,包括子目录。
             string [] strs  =  Directory.GetFiles(FolderPath,  " * " , SearchOption.AllDirectories);
            
foreach  ( string  str  in  strs)
            {
                Console.WriteLine(str);
            }
            
// 获取c:\dell\drivers下的所有文件名,目录名。
             string [] fileAndDirectorys  =  Directory.GetFileSystemEntries(FolderPath);
            
foreach  ( string  str  in  fileAndDirectorys)
            {
                Console.WriteLine(str);
            }
            Console.ReadLine();
        }
    }
}


编码实现>文件和输入输出>文件夹信息类DirectoryInfo>目录的创建,移动,删除,获取目录信息

编码实现>文件和输入输出(包括)>文件操作 DirectoryInfo>目录的创建,移动,删除,获取目录信息
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.IO;

namespace  DirectoryInfoDemo
{
    
class  Program
    {
        
static   void  Main( string [] args)
        {
            
const   string  sourcePath  =   @" C:\DirectoryInfoDemo " ;
            
const   string  destPath  =   @" C:\DirectoryInfoDemo2 " ;
            
// 使用目录构造DirectoryInfo。
            DirectoryInfo di  =   new  DirectoryInfo(sourcePath);
            
if  ( ! di.Exists)
            {
                di.Create();
            }
            
// 创建子目录SubDirectory
            di.CreateSubdirectory( " SubDirectory " );
            Console.WriteLine(
" {0}的信息为: " , di.FullName);
            Console.WriteLine(
" 父目录:{0} " , di.Parent.FullName);
            Console.WriteLine(
" 根目录:{0} " , di.Root.FullName);
            Console.WriteLine(
" 属性:{0} " , di.Attributes.ToString());
            Console.WriteLine(
" 建立时间:{0} " , di.CreationTime.ToString());
            Console.WriteLine(
" 最后一次访问时间{0} " , di.LastAccessTime.ToString());
            Console.WriteLine(
" 最后一次写入时间{0} " , di.LastWriteTime.ToString());
            Console.WriteLine(
" 文件夹己经被移动! " );
            
if  (Directory.Exists(destPath))
            {
                Directory.Delete(destPath,
true );
            }
            
// 移动文件夹  
            di.MoveTo(destPath);
            Console.WriteLine(
" 文件夹己经被删除! " );
            
// 删除文件夹
              if  (Directory.Exists(di.FullName  +   @" \SubDirectory " ))
            {
                Directory.Delete(di.FullName 
+   @" \SubDirectory " , true );
            }
            di.Delete();            
            Console.ReadLine();
        }
    }
}


编码实现>文件和输入输出>文件夹信息类DirectoryInfo>获取文件,子目录的位置

编码实现>文件和输入输出(包括)>文件操作 DirectoryInfo>获取文件,子目录的位置
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.IO;

namespace  GetFilesAndDirectories
{
    
class  Program
    {
        
static   void  Main( string [] args)
        {
            
const   string  windowsPath  =   @" C:\WINDOWS " ;
            DirectoryInfo di 
=   new  DirectoryInfo(windowsPath);
            
// 获取C:\Windows下的所有的顶层文件夹
          
//   DirectoryInfo[] dis = di.GetDirectories();
            
// 通过指定搜索模式,指定SearchOption.AllDirectories,表示搜索所有子目录中的目录
            DirectoryInfo[] dis  =  di.GetDirectories( " * " ,SearchOption.AllDirectories);
            DisplayResult(dis);
            
// 获取顶层目录中的所有文件。
            
// FileInfo[] fis = di.GetFiles();
            FileInfo[] fis  =  di.GetFiles( " * " , SearchOption.TopDirectoryOnly);
            DisplayResult(fis);
            
// 获取所有的FileSystemInfo对象。
            FileSystemInfo[] fsi  =  di.GetFileSystemInfos( " * " );
            DisplayResult(fsi);
            Console.ReadLine();
           }
        
static   void  DisplayResult(DirectoryInfo[] dis)
        {
            
foreach  (DirectoryInfo di  in  dis)
            {
                Console.WriteLine(di.FullName);
            }
        }
        
static   void  DisplayResult(FileInfo[] fi)
        {
            
foreach  (FileInfo fs  in  fi)
            {
                Console.WriteLine(fs.FullName);
            }
        }
        
static   void  DisplayResult(FileSystemInfo[] fis)
        {
            
foreach  (FileSystemInfo fsi  in  fis)
            {
                Console.WriteLine(fsi.FullName);
            }
        }
    }
}


 

 

 

你可能感兴趣的:(文件操作)