转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. GC回收建议

    1.最基本的建议就是尽早释放无用对象的引用.大多数程序员在使用临时变量的时候,都是让引用变量在退出活动域(scope)后,自动设置为 null.我们在使用这种方式时候,必须特别注意一些复杂的对象图,例 ...

  2. Java Memory Management(1)

    Java Memory Management, with its built-in garbage collection, is one of the language’s finest achiev ...

  3. hadoop面试时可能遇到的问题

    面试hadoop可能被问到的问题,你能回答出几个 ? 1.hadoop运行的原理? 2.mapreduce的原理? 3.HDFS存储的机制? 4.举一个简单的例子说明mapreduce是怎么来运行的 ...

  4. .NET的类型层次查看工具

    上周为了快速了解一个.NET的库而需要查看其类型层次.假如要在文章中表示一个类型层次,还是用文本比较舒服,截图始终是不方便.Reflector虽然能够显示类型层次,但我无法方便的把显示出来的类型层次转 ...

  5. 六月计划#1A(6.1-6.8)

    5/35 数学 BZOJ_[HNOI2008]_Cards_(置换+Burnside引理+乘法逆元+费马小定理+快速幂) BZOJ_1005_ [HNOI2008]_明明的烦恼_(组合数学+purfe ...

  6. POJ 2513 Colored Sticks 解题报告

    第一次接触欧拉回路.虽然在离散数学里学过,敲代码还是第一次. 本题是说端点颜色相同的两根木棒可连接,能否将所有的木棒连成一条直线. 将颜色视为节点v,将木棒视为边e,构成图G.如果能找到一条一笔画的路 ...

  7. apache开源项目--kylin

    Kylin 是一个开源的分布式的 OLAP 分析引擎,来自 eBay 公司开发,基于 Hadoop 提供 SQL 接口和 OLAP 接口,支持 TB 到 PB 级别的数据量. Kylin 是: 超级快 ...

  8. HTTP请求中的缓存(cache)机制

    http://www.chaorenmao.com/blog/?p=79 流程 当资源第一次被访问的时候,HTTP头部如下 (Request-Line)  GET /a.html HTTP/1.1Ho ...

  9. Embedding Documents in Word 2007 by Using the Open XML SDK 2.0 for Microsoft Office

    Download the sample code This visual how-to article presents a solution that creates a Word 2007 doc ...

  10. 图文教您轻松学会用PS设计制作名片

    图文教您轻松学会用PS设计制作名片 http://jingyan.baidu.com/article/49711c614e7370fa441b7ca3.html