文件和文件夹的操作——文件操作

简介: 文件和文件夹的操作——文件操作

操作文件夹的类:Directory,需要引用的命名空间:using System.IO;


例:


class Program


   {

       static void Main(string[] args)


       {

           String str=@"D:\temp";


           Directory.CreateDirectory(str);//创建文件夹


           if (Directory.Exists(str))//判断是否存在


           {

               Console.WriteLine("存在temp文件夹");


           }


           Directory.Delete(str);//删除文件夹


       }


}


获取文件夹下的所有文件:


static void Main(string[] args)


       {

           string[] files = Directory.GetFiles("D:\\360驱动大师目录\\驱动备份目录");


           foreach (string file in files)//去除文件的路径


           {

               int idx = file.LastIndexOf(@"\");


               string temp = file.Substring(idx + 1, file.Length - idx - 1);


               Console.WriteLine(temp);


           }


           foreach (string file in files)//显示文件的路径


           {

               Console.WriteLine(file);


           }


       }


使用FileInfo类获取文件信息:


string[] files = Directory.GetFiles("D:\\360驱动大师目录\\驱动备份目录");


           foreach (string file in files)//去除文件的路径


           {

               FileInfo info = new FileInfo(file);


               string tmp = info.Name;


               Console.WriteLine(tmp+"  "+info.Length/1024);


           }


获取文件夹中子目录的名字:


  string[] dirs = Directory.GetDirectories("D:\\360驱动大师目录");


           foreach (string dir in dirs)


           {

               Console.WriteLine(dir);


           }


File文件类。


创建文件用:File.Create(@"D:\ite.txt");


复制文件:File.Copy(@"D:\ite.txt", @"E:\aa.txt");


删除文件:File.Delete;


剪贴文件:File.More;


判断文件是否存在:File.Exists;


创建一个文件并向里面填写内容:


  FileStream fs = new FileStream(@"D:\ite.txt", FileMode.OpenOrCreate);


  StreamWriter writer = new StreamWriter(fs);


  writer.WriteLine("uhuirhiuheriuhiuerhiu");


  writer.Close();


  fs.Close();


读取文件的内容:


FileStream fs = new FileStream(@"D:\ite.txt", FileMode.OpenOrCreate);


StreamReader reader = new StreamReader(fs);


string line = "";


while ((line = reader.ReadLine()) != null)


{

Console.WriteLine(line);


}


reader.Close();


fs.Close();


对二进制文件的写操作:


FileStream fs = new FileStream(@"D:\it.txt", FileMode.OpenOrCreate|FileMode.Append);//打开创建或追加


           BinaryWriter writer = new BinaryWriter(fs);


           writer.Write("asgdiufhdsaiuhfoiuahss");


           writer.Close();


           fs.Close();


对二进制文件的读操作:


FileStream fs = new FileStream(@"D:\it.txt", FileMode.OpenOrCreate|FileMode.Append);//打开创建或追加


           BinaryReader reader = new BinaryReader(fs);


           char[] bt = new char[fs.Length];


           reader.Read(bt, 0, (int)fs.Length);


           string aa = new string(bt);


           Console.WriteLine(aa);


           reader.Close();


           fs.Close();





例:多线程删除文件和文件夹(使用于大数量的文件和文件夹)


using System;


转存失败重新上传取消using System.Collections.Generic;


using System.ComponentModel;


using System.Data;


using System.Drawing;


using System.Linq;


using System.Text;


using System.Windows.Forms;


using System.IO;


using System.Threading;


namespace DeleteDir


{


   public partial class Form1 : Form


   {


       public Form1()


       {


           InitializeComponent();


       }


       /// <summary>


       /// 选择按钮 选择要删除的文件夹


       /// </summary>


       /// <param name="sender"></param>


       /// <param name="e"></param>


       private void btnSelect_Click(object sender, EventArgs e)


       {


           FolderBrowserDialog fbdDialog = new FolderBrowserDialog();//创建FolderBrowserDialog对象


           if (fbdDialog.ShowDialog() == DialogResult.OK)


           {


               txtPath.Text = fbdDialog.SelectedPath;


           }


       }


       private void btnDel_Click(object sender, EventArgs e)


       {


           DirectoryInfo dirInfo = new DirectoryInfo(txtPath.Text.Trim());


           DirectoryInfo[] dirAtt = dirInfo.GetDirectories();//获取文件夹下所有的文件夹


           int dirAttLength = dirAtt.Length;


           for (int i = 0; i < dirAttLength; i++)


           {


               Thread[] that = new Thread[dirAttLength];


               DirDelete dt = new DirDelete();


               dt.DicInfo = dirAtt[i];


               that[i] = new Thread(dt.Delete);


               that[i].Name = "th" + i;


               that[i].IsBackground = true;


               that[i].Start();


           }


           if (dirAtt.Length == 0)


           {


               DirDelete dt = new DirDelete();


               dt.DicInfo = dirInfo;


               Thread that = new Thread(dt.Delete);


               that.IsBackground = true;


               that.Start();


           }


       }


   }


   public class DirDelete {


       public DirectoryInfo DicInfo { get; set; }


       public void Delete()


       {


           DeleteFileAndDirectory(DicInfo);


       }


       private void DeleteFileAndDirectory(DirectoryInfo info)


       {


           if (info.Exists == false){return;}


           DirectoryInfo[] childDir=info.GetDirectories();


           foreach (DirectoryInfo newInfo in childDir)


           {


               DeleteFileAndDirectory(newInfo);


           }


           foreach (FileInfo file in info.GetFiles())


           {


               if (file.Exists)


               {


                   file.Attributes = FileAttributes.Normal;//防止文件受保护不能删除


                   file.Delete();


               }


           }


           if (info.Exists)


           {


               info.Attributes = FileAttributes.Normal;


               info.Delete();


           }


       }


   }


}


目录
相关文章
|
4月前
|
Java
Java【代码 15】文件操作相关方法(获取文件、复制文件、创建文件夹、获取图片文件、写出数据到文件、清理文件夹)
Java【代码 15】文件操作相关方法(获取文件、复制文件、创建文件夹、获取图片文件、写出数据到文件、清理文件夹)
29 0
|
7月前
|
NoSQL Python
PythonExcel文件
在Python中,我们可以使用许多库来处理Excel文件,其中最常用的是pandas和openpyxl。
|
8月前
读取指定文件夹下面的所有文件(含子目录)
读取指定文件夹下面的所有文件(含子目录)
30 0
|
12月前
|
Unix Shell 测试技术
Python 文件复制&按目录树结构拷贝&批量删除目录及其子目录下的文件
Python 文件复制&按目录树结构拷贝&批量删除目录及其子目录下的文件
106 0
|
IDE Linux 开发工具
.editorconfig文件
.editorconfig文件
47 0
|
安全 Python
【通用文件操作】删除空文件夹
对于有强迫症的人来说,空文件夹是不允许存在的东西,而电脑中文件又特别多,而且空文件夹也不好找,要一个一个删除真的是太麻烦了,今天就和大家分享一下删除空文件夹的操作。文章比较啰嗦,读者可以直接跳到最后一段。
394 0
|
Linux
(二)目录及文件操作
命令:ls[选项][目录/文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。 对于文件,将列出文件名及其他
131 0
(二)目录及文件操作
|
存储 缓存 数据格式
文件和文件夹的操作——文件流的使用
文件和文件夹的操作——文件流的使用
225 0
文件和文件夹的操作——文件流的使用
文件和文件夹的操作——文件夹的操作
文件和文件夹的操作——文件夹的操作
99 0
文件和文件夹的操作——文件夹的操作
|
存储 Unix Shell