转http://skybirdzw.blog.163.com/blog/static/7257062620099751329403/

文件处理-Directory类 (C#)

Directory.CreateDirectory 方法:创建指定路径中的所有目录。

Directory.CreateDirectory (String)按 path 的指定创建所有目录和子目录。

Directory.CreateDirectory (String, DirectorySecurity)创建指定路径中的所有目录,并应用指定的 Windows 安全性。

//***************codeTest**************************************

using System;

using System.IO;

class Test

{

public static void Main()

{

// Specify the directory you want to manipulate.

string path = @"c:\MyDir\MyDoc";

try

{

// Determine whether the directory exists.

if (Directory.Exists(path))

{

Console.WriteLine("That path exists already.");

return;

}

// Try to create the directory.

DirectoryInfo di = Directory.CreateDirectory(path);

Console.WriteLine("The directory was created successfully at {0}.", Directory.GetCreationTime(path));

// Delete the directory.

//di.Delete();

Console.WriteLine("The directory was deleted successfully.");

}

catch (Exception e)

{

Console.WriteLine("The process failed: {0}", e.ToString());

}

finally { }

}

}

//***************endCode**************************************

Directory.Delete 方法:删除指定的目录。

Directory.Delete (String)从指定路径删除空目录。

Directory.Delete (String, Boolean)删除指定的目录并(如果指示)删除该目录中的任何子目录。

//***************codeTest**************************************

using System;

using System.IO;

class Test

{

public static void Main()

{

// Specify the directories you want to manipulate.

string path = @"c:\MyDir";

string subPath = @"c:\MyDir\temp";

try

{

// Determine whether the directory exists.

if (!Directory.Exists(path))

{

// Create the directory.

Directory.CreateDirectory(path);

}

if (!Directory.Exists(subPath))

{

// Create the directory.

Directory.CreateDirectory(subPath);

}

// This will succeed because subdirectories are being deleted.

Console.WriteLine("I am about to attempt to delete {0}", path);

Directory.Delete(path, true);

Console.WriteLine("The Delete operation was successful.");

}

catch (Exception e)

{

Console.WriteLine("The process failed: {0}", e.ToString());

}

finally { }

}

}

//***************endCode**************************************

Directory.Exists 方法:确定给定路径是否引用磁盘上的现有目录。

Directory.GetCreationTime 方法:获取目录的创建日期和时间。

//***************codeTest**************************************

using System;

using System.IO;

class Test

{

public static void Main()

{

try

{

// Get the creation time of a well-known directory.

DateTime dt = Directory.GetCreationTime(Environment.CurrentDirectory);

// Give feedback to the user.

if (DateTime.Now.Subtract(dt).TotalDays > 364)

{

Console.WriteLine("This directory is over a year old.");

}

else if (DateTime.Now.Subtract(dt).TotalDays > 30)

{

Console.WriteLine("This directory is over a month old.");

}

else if (DateTime.Now.Subtract(dt).TotalDays <= 1)

{

Console.WriteLine("This directory is less than a day old.");

}

else

{

Console.WriteLine("This directory was created on {0}", dt);

}

}

catch (Exception e)

{

Console.WriteLine("The process failed: {0}", e.ToString());

}

}

}

//***************endCode**************************************

Directory.GetCurrentDirectory 方法:获取应用程序的当前工作目录。

//***************codeTest**************************************

using System;

using System.IO;

class Test

{

public static void Main()

{

try

{

// Get the current directory.

string path = Directory.GetCurrentDirectory();

string target = @"c:\temp";

Console.WriteLine("The current directory is {0}", path);

if (!Directory.Exists(target))

{

Directory.CreateDirectory(target);

}

// Change the current directory.

Environment.CurrentDirectory = (target);

if (path.Equals(Directory.GetCurrentDirectory()))

{

Console.WriteLine("You are in the temp directory.");

}

else

{

Console.WriteLine("You are not in the temp directory.");

}

}

catch (Exception e)

{

Console.WriteLine("The process failed: {0}", e.ToString());

}

}

}

//***************endCode**************************************

Directory.GetDirectories 方法:获取指定目录中子目录的名称。

Directory.GetDirectories (String)获取指定目录中子目录的名称。

Directory.GetDirectories (String, String)从当前目录获取与指定搜索模式匹配的目录的数组。

Directory.GetDirectories (String, String, SearchOption)获取当前目录中与指定搜索模式匹配并使用某个值确定是否在子目录中搜索的目录的数组。

//***************codeTest**************************************

using System;

using System.IO;

class SubDir

{

public static void Main()

{

string path = @"F:\课件\通信原理";

try

{

string[] dirs = Directory.GetDirectories(path);

Console.WriteLine("F:\\课件\\通信原理 子目录数 = {0}", dirs.Length);

foreach (string dir in dirs)

Console.WriteLine(dir);

}

catch (Exception e)

{

Console.WriteLine("失败: {0}", e.ToString());

}

}

}

//***************endCode**************************************

//***************codeTest**************************************

using System;

using System.IO;

class Test

{

public static void Main()

{

try

{

// Only get subdirectories that begin with the letter "p."

string[] dirs = Directory.GetDirectories(@"c:\", "p*");

Console.WriteLine("The number of directories starting with p is {0}.", dirs.Length);

foreach (string dir in dirs)

{

Console.WriteLine(dir);

}

}

catch (Exception e)

{

Console.WriteLine("The process failed: {0}", e.ToString());

}

}

}

//***************endCode**************************************

Directory.GetFiles 方法:返回指定目录中的文件的名称。

Directory.GetFiles (String)返回指定目录中的文件的名称。

Directory.GetFiles (String, String)返回指定目录中与指定搜索模式匹配的文件的名称。

Directory.GetFiles (String, String, SearchOption)返回指定目录中文件的名称,该目录与指定搜索模式匹配并使用某个值确定是否在子目录中搜索。

//***************codeTest**************************************

using System;

using System.IO;

class Test

{

public static void Main()

{

try

{

// Only get files that begin with the letter "c."

string[] dirs = Directory.GetFiles(@"F:\memo","*.txt");

Console.WriteLine("The number of files starting with c is {0}.", dirs.Length);

foreach (string dir in dirs)

{

Console.WriteLine(dir);

}

}

catch (Exception e)

{

Console.WriteLine("The process failed: {0}", e.ToString());

}

}

}

//***************endCode**************************************

Directory.GetFileSystemEntries 方法:返回指定目录中所有文件和子目录的名称。

Directory.GetFileSystemEntries (String)返回指定目录中所有文件和子目录的名称。

Directory.GetFileSystemEntries (String, String)返回与指定搜索条件匹配的文件系统项的数组。

Directory.Move 方法:将文件或目录及其内容移到新位置。

//***************codeTest**************************************

using System;

using System.IO;

class Test

{

public static void Main()

{

try

{

string path = @"F:\memo";

string path2 = @"F:\VC++串口通讯\memo";

Directory.Move(path, path2);

}

catch (Exception e)

{

Console.WriteLine("The process failed: {0}", e.ToString());

}

}

}

//***************endCode**************************************

举 例来讲,如果您尝试将 c:\mydir 移到 c:\public,并且 c:\public 已存在,则此方法引发 IOException。您必须将“c:\\public\\mydir”指定为 destDirName 参数(假设“c:\\public”下不存在“mydir”),或者指定一个新的目录名,例如“c:\\newdir”。

//***************codeTest**************************************

using System;

namespace GetFileSystemEntries

{

class Class1

{

static void Main(string[] args)

{

Class1 snippets = new Class1();

string path = System.IO.Directory.GetCurrentDirectory();

string filter = "*.exe";

snippets.PrintFileSystemEntries(path);

snippets.PrintFileSystemEntries(path, filter);

snippets.GetLogicalDrives();

snippets.GetParent(path);

snippets.Move("C:\\proof", "C:\\Temp");

}

void PrintFileSystemEntries(string path)

{

try

{

// Obtain the file system entries in the directory path.

string[] directoryEntries =

System.IO.Directory.GetFileSystemEntries(path);

foreach (string str in directoryEntries)

{

System.Console.WriteLine(str);

}

}

catch (ArgumentNullException)

{

System.Console.WriteLine("Path is a null reference.");

}

catch (System.Security.SecurityException)

{

System.Console.WriteLine("The caller does not have the " +

"required permission.");

}

catch (ArgumentException)

{

System.Console.WriteLine("Path is an empty string, " +

"contains only white spaces, " +

"or contains invalid characters.");

}

catch (System.IO.DirectoryNotFoundException)

{

System.Console.WriteLine("The path encapsulated in the " +

"Directory object does not exist.");

}

}

void PrintFileSystemEntries(string path, string pattern)

{

try

{

// Obtain the file system entries in the directory

// path that match the pattern.

string[] directoryEntries =

System.IO.Directory.GetFileSystemEntries(path, pattern);

foreach (string str in directoryEntries)

{

System.Console.WriteLine(str);

}

}

catch (ArgumentNullException)

{

System.Console.WriteLine("Path is a null reference.");

}

catch (System.Security.SecurityException)

{

System.Console.WriteLine("The caller does not have the " +

"required permission.");

}

catch (ArgumentException)

{

System.Console.WriteLine("Path is an empty string, " +

"contains only white spaces, " +

"or contains invalid characters.");

}

catch (System.IO.DirectoryNotFoundException)

{

System.Console.WriteLine("The path encapsulated in the " +

"Directory object does not exist.");

}

}

// Print out all logical drives on the system.

void GetLogicalDrives()

{

try

{

string[] drives = System.IO.Directory.GetLogicalDrives();

foreach (string str in drives)

{

System.Console.WriteLine(str);

}

}

catch (System.IO.IOException)

{

System.Console.WriteLine("An I/O error occurs.");

}

catch (System.Security.SecurityException)

{

System.Console.WriteLine("The caller does not have the " +

"required permission.");

}

}

void GetParent(string path)

{

try

{

System.IO.DirectoryInfo directoryInfo =

System.IO.Directory.GetParent(path);

System.Console.WriteLine(directoryInfo.FullName);

}

catch (ArgumentNullException)

{

System.Console.WriteLine("Path is a null reference.");

}

catch (ArgumentException)

{

System.Console.WriteLine("Path is an empty string, " +

"contains only white spaces, or " +

"contains invalid characters.");

}

}

void Move(string sourcePath, string destinationPath)

{

try

{

System.IO.Directory.Move(sourcePath, destinationPath);

System.Console.WriteLine("The directory move is complete.");

}

catch (ArgumentNullException)

{

System.Console.WriteLine("Path is a null reference.");

}

catch (System.Security.SecurityException)

{

System.Console.WriteLine("The caller does not have the " +

"required permission.");

}

catch (ArgumentException)

{

System.Console.WriteLine("Path is an empty string, " +

"contains only white spaces, " +

"or contains invalid characters.");

}

catch (System.IO.IOException)

{

System.Console.WriteLine("An attempt was made to move a " +

"directory to a different " +

"volume, or destDirName " +

"already exists.");

}

}

}

}

//***************endCode**************************************

Notice: Codes were mainly from MSDN

文件处理-Directory类 (C#)的更多相关文章

  1. Directory类和DirectoryInfo类

    1.Directory类 Directory类公开了用于创建.移动.枚举.删除目录和子目录的静态方法 2.DirectoryInfo类 DirectoryInfo和Directory类的区别可以参看F ...

  2. .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化

    1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里 ...

  3. 文件及文件夹操作- File类、Directory 类、FileInfo 类、DirectoryInfo 类

    文件及文件夹操作: C/S:WinForm可以操作客户端文件 Client ServerB/S:Brower Server 命名空间:using system .IO; 1. File类: 创建:Fi ...

  4. C#文件操作常用相关类(Directory类、File类、Path类)

    1.文件操作常用相关类 1)File //操作文件,静态类,对文件整体操作.拷贝.删除.剪切等 2)Directory //操作目录(文件夹),静态类 3)DirectoryInfo //文件夹的一个 ...

  5. I/O Directory类

    Directory类 Directory类位于System.IO 命名空间.Directory类提供了在目录和子目录中进行创建移动和列举操作的静态方法.此外,你还可以访问和操作各种各样的目录属性. 1 ...

  6. C#读取XML文件的基类实现

    刚到新单位,学习他们的源代码,代码里读写系统配置文件的XML代码比较老套,直接写在一个系统配置类里,没有进行类的拆分,造成类很庞大,同时,操作XML的读写操作都是使用SetAttribute和node ...

  7. System.IO.Directory类

    1.参考的博客:System.IO.Directory类和System.DirectoryInfo类(http://blog.sina.com.cn/s/blog_614f473101017du4.h ...

  8. ASP.NET 文件上传类 简单好用

    调用: UploadFile uf = new UploadFile(); /*可选参数*/ uf.SetIsUseOldFileName(true);//是否使用原始文件名作为新文件的文件名(默认: ...

  9. C#文件读写常用类介绍

    首先要熟悉.NET中处理文件和文件夹的操作.File类和Directory类是其中最主要的两个类.了解它们将对后面功能的实现提供很大的便利.      本节先对和文件系统相关的两个.NET类进行简要介 ...

随机推荐

  1. hihocoder #1289 : 403 Forbidden (2016 微软编程笔试第二题)

    #1289 : 403 Forbidden 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi runs a web server. Sometimes ...

  2. Eclipse 中使用Genymotion 作为模拟器的步骤

    我这里是先安装的genymotion, 后安装的eclipse. 1:安装genymotion 无难度, 直接安装就行了. 2:安装eclipse 下载adt即可, 解压运行. 3:运行eclipse ...

  3. 用友U8账套的建立

      第1步点击开始菜单进入系统管理模块   第2步点击系统菜单下的注册   第3步弹出登录系统对话框,操作员输入admin点确定   第4步点击权限菜单下的用户   第5步进入用户管理窗口,点击工具栏 ...

  4. HDOJ 2167 Pebbles (状态压缩dp)

    题意:给你一个n*n的矩阵,让你从矩阵中选择一些数是的他们的和最大,规则是:相邻的两个数不能同时取,位置为(i,j)的数与(i+1,j),(i-1,j),(i,j+1),(i,j-1),(i+1,j+ ...

  5. Microsoft SQL Server,错误:2;SQL Server配置管理器(本地)—远程过程调用失败

    本机是先安装sqlserver2008,后安装vs2012 在安装sqlserver2008后,运行sqlserver2008正常,接着安装vs2012,再运行sqlserver2008,问题出现了, ...

  6. .net软件自动化测试笔记(API-2)

    1.9获得测试运行时间如何获得测试运行的总时间设计:DateTime.Now属性记录测试开始运行时间,以及测试结束时间,用一个TimeSpan对象计算本次运行的总时间 DateTime starTim ...

  7. 2015年9月28日JQuery提前预习预热笔记

    visual studio下载2010 2010与2008不一样,2008需要添加补丁,采用调用对象.2010可以直接用. JQuery=$ 是函数是方法是对象 念J快儿,念doler 开发人员工具( ...

  8. 【CSS3】Advanced10:Gradient

    1.background:linear-gradient(20deg/(to) bottom right,orange,red,hsl(60,100%,50%)); 2.-webkit-chrome/ ...

  9. Java笔记(八)……数组

    数组的概念 同一种类型数据的集合.其实数组就是一个容器. 数组的好处 可以自动给数组中的元素从0开始编号,方便操作这些元素. 数组的格式 元素类型[] 数组名 = new 元素类型[个数]; int[ ...

  10. bzoj 1226 [SDOI2009]学校食堂Dining(状压DP)

    Description 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人口味也不一定相同,但每个人的口味都可以 ...