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

编码实现>文件和输入输出>文件操作>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);
            }
        }
    }
}


 

 

 

posted @ 2010-10-14 19:22  草珊瑚  阅读(820)  评论(0编辑  收藏  举报