🎊 C# File文件处理 删除文件

C# File文件处理 删除文件

1、删除文件要使用C# 删除文件,可以使用File.Delete()方法或调用FileInfo对象的Delete()方法,例如,

1)调用File.Delete()方法删除文件

string sourceDir = @"c:\cjavapy";

string backupDir = @"c:\cjavapy\2018";

try

{

string[] picList = Directory.GetFiles(sourceDir, "*.jpg");

string[] txtList = Directory.GetFiles(sourceDir, "*.txt");

// 复制图片文件。

foreach (string f in picList)

{

// 从文件名中删除路径。

string fName = f.Substring(sourceDir.Length + 1);

// 使用Path。组合方法可以安全地将文件名附加到路径。

// 如果目标文件已经存在,将覆盖。

File.Copy(Path.Combine(sourceDir, fName),

Path.Combine(backupDir, fName), true);

}

// 复制文本文件。

foreach (string f in txtList)

{

// 从文件名中删除路径。

string fName = f.Substring(sourceDir.Length + 1);

try

{

// 如果目标文件已经存在,则不覆盖。

File.Copy(Path.Combine(sourceDir, fName),

Path.Combine(backupDir, fName));

}

// 如果文件已被复制,则捕获异常。

catch (IOException copyError)

{

Console.WriteLine(copyError.Message);

}

}

// 删除已复制的源文件。

foreach (string f in txtList)

{

File.Delete(f);

}

foreach (string f in picList)

{

File.Delete(f);

}

}

catch (DirectoryNotFoundException dirNotFound)

{

Console.WriteLine(dirNotFound.Message);

}2)调用FileInfo对象的Delete()方法

using System;

using System.IO;

public class DeleteTest

{

public static void Main()

{

// 创建对文件对象。

FileInfo fi = new FileInfo("temp.txt");

// 创建文件

FileStream fs = fi.Create();

// 根据需要修改文件,然后关闭文件。

fs.Close();

// 删除该文件。

fi.Delete();

}

}2、删除文件夹删除文件夹或删除文件下的所有文件及文件夹,都可以使用Directory.Delete()或DirectoryInfo对象的Delete()方法,例如,

1)调用Directory.Delete()删除文件夹

using System;

using System.IO;

namespace ConsoleApplication

{

class Program

{

static void Main(string[] args)

{

string subPath = @"D:\cjavapy";

try

{

Directory.CreateDirectory(subPath);

//仅删除文件夹,并且文件夹不能有内容,

//否则需要每二个参数传true

Directory.Delete(subPath);

}

catch (Exception e)

{

Console.WriteLine("The process failed: {0}",

e.Message);

}

//删除文件夹及所有子文件夹及文件

try

{

Directory.CreateDirectory(subPath);

using (StreamWriter writer = File.CreateText(subPath

+ @"\example.txt"))

{

writer.WriteLine("content added");

}

//需要传递两个参数

Directory.Delete(topPath, true);

bool directoryExists = Directory.Exists(topPath);

Console.WriteLine("top-level directory exists: "

+ directoryExists);

}

catch (Exception e)

{

Console.WriteLine("The process failed: {0}",

e.Message);

}

}

}

}

2)调用DirectoryInfo对象的Delete()删除文件夹

using System;

using System.IO;

class Test

{

public static void Main()

{

// 指定要操作的目录。

DirectoryInfo di1 = new DirectoryInfo(@"c:\cajvapy");

try

{

// 创建目录。

di1.Create();

di1.CreateSubdirectory("temp");

//此操作将不被允许,因为有子目录。

Console.WriteLine("delete {0}", di1.Name);

//仅删除文件夹,并且文件夹不能有内容,否则参数需要传true

di1.Delete();

Console.WriteLine("successful");

DirectoryInfo di = new DirectoryInfo("TempDir");

// 只有当目录不存在时才创建该目录。

if (di.Exists == false)

di.Create();

// 在刚刚创建的目录中创建一个子目录。

DirectoryInfo dis = di.CreateSubdirectory("SubDir");

// 根据需要处理该目录。

// ...

// 删除子目录。true表示如果子目录

// 或者文件在这个目录中,它们也将被删除。

dis.Delete(true);

// Delete the directory.

di.Delete(true);

}

catch (Exception)

{

Console.WriteLine("The Delete operation failed as expected.");

}

finally {}

}

}3、使用递归方式删除目录及该目录下的所有文件及文件夹using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

namespace ConsoleApplication

{

class Program

{

public static void DeleteFolder(string deleteDirectory)

{

if (Directory.Exists(deleteDirectory))

{

foreach (string deleteFile in Directory

.GetFileSystemEntries(deleteDirectory))

{

if (File.Exists(deleteFile))

File.Delete(deleteFile);

else

DeleteFolder(deleteFile);

}

Directory.Delete(deleteDirectory);

}

}

static void Main(string[] args)

{

string dir = @"c:\cjavapy";

DeleteFolder(dir);

}

}

}

🎈 相关推荐

细数15位“出柜”的明星,同性恋不是罪也不是错,你认同吗
私家车送小件货的平台
🏷️ 谁有365bet网址

私家车送小件货的平台

📅 08-27 👀 9648
墨色生香——古墨的鉴定辩伪常识
🏷️ 365dni是什么

墨色生香——古墨的鉴定辩伪常识

📅 07-19 👀 7346
家族诞生为什么突然结束?
🏷️ 中爱365APP

家族诞生为什么突然结束?

📅 09-20 👀 7493
电话客服工作怎么样?好不好做?
🏷️ 365dni是什么

电话客服工作怎么样?好不好做?

📅 08-17 👀 8558
秦国君主列表
🏷️ 谁有365bet网址

秦国君主列表

📅 07-24 👀 7971