1 DirectoryInfo 类介绍

    DirectoryInfo 类在 .net 开发中主要用于创建、移动和枚举目录和子目录的实例方法,此类不能被继承。

  从事 .net 软件开发的同事对 DirectoryInfo 类应该都很熟悉,在开发过程中如果你打算多次重用某个对象,建议你使用 DirectoryInfo 的实例方法,而不是 Directory 类的方法,因为 Directory 类是静态的,在使用它的方法时每次都需要安全检查,而 DirectoryInfo 类的方法则不需要安全检查。

2 DirectoryInfo 类属性

    (1) Attributes:获取或设置当前文件或目录的特性 。
    (2) CreationTime:获取或设置当前文件或目录的创建时间。
    (3) CreationTimeUtc:获取或设置当前文件或目录的创建时间,其格式为协调世界时 (UTC)。
    (4) Exists:获取指示目录是否存在的值。
    (5) Extension:获取表示文件扩展名部分的字符串。
    (6) FullName:获取目录或文件的完整目录。
  .NET 4.5 版本 DirectoryInfo 新增属性
    (7) LastAccessTime:获取或设置上次访问当前文件或目录的时间 。
    (8) LastAccessTimeUtc:获取或设置上次访问当前文件或目录的时间,其格式为协调世界时 (UTC)。
    (9) LastWriteTime:获取或设置上次写入当前文件或目录的时间。
    (10) LastWriteTimeUtc:获取或设置上次写入当前文件或目录的时间,其格式为协调世界时 (UTC)。
 
3 DirectoryInfo 类方法
    (1) Create():创建目录。
    (2) Delete():如果此 DirectoryInfo 为空,则删除它。
    (3) Create(DirectorySecurity):使用 DirectorySecurity 对象创建目录。
    (4) CreateObjRef:创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。
    (5) CreateSubdirectory(String):在指定路径中创建一个或多个子目录 。指定路径可以是相对于 DirectoryInfo 类的此实例的路径。
    (6) CreateSubdirectory(String, DirectorySecurity):使用指定的安全性在指定的路径上创建一个或多个子目录。指定路径可以是相对于 DirectoryInfo 类的此实例的路径。
    (7) Delete() 如果此 DirectoryInfo 为空,则删除它 。
 

4 实例

  4.1 创建 “收藏” 文件夹

 DirectoryInfo di = new DirectoryInfo("E:\newFolder\收藏");
di.Create();

  4.2 创建 “我的收藏.txt” 文件

 DirectoryInfo di = new DirectoryInfo("E:\newFolder\收藏\我的收藏.txt");
di.Create();

  4.3 删除 “收藏” 文件夹

 DirectoryInfo di = new DirectoryInfo("E:\newFolder\收藏");
di.Delete(true);

  4.4 获取子目录和文件

 DirectoryInfo di = new DirectoryInfo("E:\newFolder\收藏");
di.GetDirectories();

  4.5 设置目录属性

 DirectoryInfo di =new DirectoryInfo("E:\newFolder\收藏");
di.Atttributes=FileAttributes.ReadOnly|FileAttributes.Hidden;  //只读、隐藏

  4.6 移动目录或文件

 File.Move("E:\newFolder\收藏\a.txt","E:\newFolder\爱好");

  4.7 获取目录下的文件

 Directory. GetFiles ("E:\newFolder\收藏");

  4.8 判断目录是否存在

 File.Exists("E:\newFolder\收藏");

  4.9 复制目录或文件

 File.Copy(source,target);

  4.10 获取文件路径中的文件名

 Path.GetFileName("E:\aa\bb\c.txt");  //结果:c.txt

  4.11 获取文件路径中的文件名的父路径

 Path.GetDirectoryName("E:\aa\bb\c.txt");   //结果:E:\aa\bb\

  4.12 读取文件

 public static byte[] FileRead(System.IO.FileInfo file, long start, int packagesize)
{
byte[] resutl = null;
long length = start + packagesize;
using (System.IO.FileStream stream = file.OpenRead())
{
if (length > stream.Length) //最后一部分不足packagesize
resutl = new byte[stream.Length - start];
else
resutl = new byte[packagesize];
stream.Seek(start, System.IO.SeekOrigin.Begin);
stream.Read(resutl, , resutl.Length);
}
return resutl;
}

  4.13 写入文件

 public static void FileWrite(System.IO.FileInfo file, long start, byte[] data)
{
using (System.IO.FileStream stream = file.OpenWrite())
{
stream.Seek(start, System.IO.SeekOrigin.Begin);
stream.Write(data, , data.Length);
stream.Flush();
stream.Close();
}
}

C#学习之文件操作的更多相关文章

  1. HTML5学习之文件操作(九)

    之前我们操作本地文件都是使用flash.silverlight或者第三方的activeX插件等技术,由于使用了这些技术后就很进行跨平台的处理,另外就是让我们的web应用依赖了第三方的插件,而不是很独立 ...

  2. python学习笔记:文件操作和集合(转)

    转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...

  3. python学习总结---文件操作

    # 文件操作 ### 目录管理(os) - 示例 ```python # 执行系统命令 # 清屏 # os.system('cls') # 调出计算器 # os.system('calc') # 查看 ...

  4. erlang学习笔记(文件操作)

    参考这里和这里了解到的文件操作的模块有很多:kernel下有:file,stdlib下有:filelib,filename,file_sorter.(具体查看官方文档)

  5. Smart210学习记录-------文件操作

    一.linux文件操作(只能在linux系统上用) 创建:int creat(const char* filename, mode_t mode) filename 表示要创建的文件名,mode表示对 ...

  6. NodeJS学习之文件操作

    NodeJS -- 文件操作 Buffer(数据块) JS语言自身只有字符串数据类型,没有二进制数据类型,因此NodeJS提供了一个与String对等的全局构造函数Buffer来提供对二进制数据的操作 ...

  7. python学习day8 文件操作(深度学习)

    文件操作 (day7内容扩展) 1 文件基本操作 obj = open('路径',mode='模式',encoding='编码')obj.write()obj.read()obj.close() 2 ...

  8. python学习日记(文件操作)

    文件操作概述 计算机系统分为:操作系统,计算机硬件,应用程序. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序 ...

  9. python 学习分享-文件操作篇

    文件操作 f_open=open('*.txt','r')#以只读的方式(r)打开*.txt文件(需要与py文件在同一目录下,如果不同目录,需写全路径) f_open.close()#关闭文件 打开文 ...

  10. python基础学习笔记——文件操作

    文件操作 初始文件操作 使用Python来读写文件是非常简单的操作,我们使用open()函数来打开一个文件,获取到文件句柄,然后通过文件句柄就可以进行各种各样的操作了 根据打开方式的不同能够执行的操作 ...

随机推荐

  1. .NET 4中的多线程编程之一:使用Task(转载)

    原文地址:http://www.cnblogs.com/yinzixin/archive/2011/11/04/2235233.html .NET 4为了简化多线程编程,提供了System.Threa ...

  2. NSUserDefaults用法详解

    一.了解NSUserDefaults以及它可以直接存储的类型 NSUserDefaults是一个单例,在整个程序中只有一个实例对象,他可以用于数据的永久保存,而且简单实用,这是它可以让数据自由传递的一 ...

  3. 隐式等待-----Selenium快速入门(九)

    有时候,网页未加载完成,或加载失败,但是我们后续的代码就已经开始查找页面上的元素了,这通常将导致查找元素失败.在本系列Selenium窗口切换-----Selenium快速入门(六)中,我们就已经出现 ...

  4. .NET Core 玩一玩 Ocelot API网关

    .net 这几年国内确实不好过. 很多都选择转行.不过.net Core跨平台 开源之后 .社区的生态在慢慢建立.往好的趋势发展. 对于坚守在.NET战线的开发者来说 是个挺不错的消息.  特别是微软 ...

  5. 20164317《网络对抗技术》Exp1 PC平台逆向破解

    实验目的: 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getSh ...

  6. $_SERVER[]数组解析

    $_SERVER['PHP_SELF'] 将会得到 /test.php/foo.bar 这个结果.__FILE__ 常量包含当前(例如包含)文件的绝对路径和文件名. 如果 PHP 以命令行方式运行,该 ...

  7. FunDA(7)- Reactive Streams to fs2 Pull Streams

    Reactive-Stream不只是简单的push-model-stream, 它还带有“拖式”(pull-model)性质.这是因为在Iteratee模式里虽然理论上由Enumerator负责主动推 ...

  8. poj1953 World Cup Noise

    http://poj.org/problem?id=1953 题目大意:给定一个正整数n,确定该长度的不同吟唱模式的数量,即确定不包含相邻1的n位序列的数目.例如,对于n = 3,答案是5 (序列00 ...

  9. Alamofire源码导读三:返回的处理逻辑

     以DataRequest 为例子. 最简单的返回 URLSession 有一个方法,可以构建 URLSessionDataTask func dataTask(with url: URL, com ...

  10. 浅谈Express的put与del

    假设有一个景区价格列表页,显示当前的价目表. 价目表存放在express应用的数组中: var tours = [ {id:0,name:'Hood River',price:99.99}, {id: ...