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

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

操作文件夹的类: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();


           }


       }


   }


}


目录
相关文章
|
8月前
|
C#
C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录
C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录
113 0
|
4月前
|
Linux API C++
超级好用的C++实用库之文件目录操作
超级好用的C++实用库之文件目录操作
59 0
|
5月前
|
JavaScript Java
不同目录下的文件读取方式
这篇文章介绍了在Java中不同情况下读取文件的方法,包括当文件与类文件处于同级目录、不同级目录,以及不区分目录层级时的读取方式。
39 1
|
8月前
|
存储 Windows
学习文件和文件操作
要将数据进⾏持久化的保存,我们可以使用文件。
63 0
|
8月前
|
Java
Java【代码 15】文件操作相关方法(获取文件、复制文件、创建文件夹、获取图片文件、写出数据到文件、清理文件夹)
Java【代码 15】文件操作相关方法(获取文件、复制文件、创建文件夹、获取图片文件、写出数据到文件、清理文件夹)
47 0
|
Python
Python 文件处理指南:打开、读取、写入、追加、创建和删除文件
文件处理是任何Web应用程序的重要部分。Python有多个用于创建、读取、更新和删除文件的函数。
126 0
 Python 文件处理指南:打开、读取、写入、追加、创建和删除文件
读取指定文件夹下面的所有文件(含子目录)
读取指定文件夹下面的所有文件(含子目录)
58 0
|
Unix Shell 测试技术
Python 文件复制&按目录树结构拷贝&批量删除目录及其子目录下的文件
Python 文件复制&按目录树结构拷贝&批量删除目录及其子目录下的文件
159 0
|
Java 开发者
Java操作文件的日常总结(文件压缩,文件解压,递归删除文件,文件的下载保存)
文件的读写是日常开发中经常碰到的需求,熟练掌握文件的读写是每个Java开发者的基本功。本文将主要介绍常见的文件读写操作。 之前写过一篇Java IO的文章 Java IO基础(同步阻塞IO)。
299 0
|
Linux
(二)目录及文件操作
命令:ls[选项][目录/文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。 对于文件,将列出文件名及其他
167 0
(二)目录及文件操作