创建时间是文件存入到电脑中的时间,而修改时间则是改变起内容的最后时间
// 读取文件的创建、修改、访问时间
FileInfo fi = new FileInfo("C://test.txt");
Console.WriteLine(fi.CreationTime.ToString());
Console.WriteLine(fi.LastWriteTime.ToString());
Console.WriteLine(fi.LastAccessTime.ToString()); // 改变(设置)文件的创建、修改、访问时间
File.SetCreationTime("C://test.txt", DateTime.Now.AddYears(-));
File.SetLastWriteTime("C://test.txt", DateTime.Now.AddYears(-));
File.SetLastAccessTime("C://test.txt", DateTime.Now.AddYears(-));

FileInfo 和 File 的名称空间是:

System.IO
================================================
以文件只读和隐藏属性为例,其他属性,比如“存档”、“系统”等,方法类似。

读取文件只读和隐藏属性

FileInfo fi = new FileInfo("C://test.txt");
if ((fi.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
Console.WriteLine("是只读");
}
else
{
Console.WriteLine("不是只读");
} if ((fi.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
{
Console.WriteLine("是隐藏");
}
else
{
Console.WriteLine("不是隐藏");
}

设置文件只读和隐藏属性

FileInfo fi = new FileInfo("C://test.txt");
fi.Attributes = fi.Attributes | FileAttributes.ReadOnly | FileAttributes.Hidden; // 法一
//File.SetAttributes("C://test.txt", fi.Attributes | FileAttributes.ReadOnly | FileAttributes.Hidden); // 法二

可以看出,既可通过设置 Attributes 属性,也可通过利用 File 的 SetAttributes 方法来到目的。

说明的是,不管怎样做,都要先获取文件的原属性,如果不获取文件的原属性,直接就是 FileAttributes.ReadOnly | FileAttributes.Hidden,那么,可能会导致一些属性丢失,比如文件以前可能有“存档”属性,直接这样设置的话,存档属性就丢失了。

取消文件只读和隐藏属性

FileInfo fi = new FileInfo("C://test.txt");
fi.Attributes = fi.Attributes & ~FileAttributes.ReadOnly & ~FileAttributes.Hidden; // 法一
//File.SetAttributes("C://test.txt", fi.Attributes & ~FileAttributes.ReadOnly & ~FileAttributes.Hidden); // 法二

类似于设置,只是一些运算符号变了。注意,网上的说法是直接设置属性为 FileAttributes.Normal,这是不对的,这不仅取消了只读和隐藏属性,可能还取消了其他一些属性,比如“存档”。

说明

不当的属性设置,可能导致文件无法在 Windows 资源管理器中显示出来,但又确实存在,此时可以利用 FileAttributes.Normal 将文件显示出来,方便操作。

以下转载:

C#File以及FileInfo对文件的操作

使用File操作文件

//使用file的静态方法进行复制
File.Copy(path, destpath);
//使用File的静态方法删除路径下的一个文件
File.Delete(path);
//使用File的静态方法移动路径下的一个文件
File.Move(path, destpath);
File.ReadAllText(path); //打开一个文本文件*.txt ,读取文件中数据,然后关闭该文件
//写入
File.WriteAllText(path, "要写入文件的字符串"); //创建一个文件,向其中写入数据,如果此路径下有同名文件则会覆

PS:对文件进行写入操作,如果路径下有同名文件则会进行覆盖,所以最好进行一次判断,跟用户交互一下在进行覆盖

使用FileInfo操作文件

FileInfo myfile = new FileInfo(path); //声明一个对象对某一个文件进行操作
myfile.CopyTo(destpath); //对文件进行复制操作,复制路径为destpath
myfile.MoveTo(destpath); //进行移动操作
myfile.Delete(); //进行删除操作

获得某一文件或文件夹的详细信息(创建日期,最后一次修改日期等等

FileInfo myfile = new FileInfo(path); //声明一个对象对某一个文件进行操作
DateTime dt = myfile.CreationTime; //获取或设置文件/文件夹的创建日期
string filepath = myfile.DirectoryName; //仅能用于FileInfo,获得完整的路径名,路径+文件名
bool file = myfile.Exists; //此属性的值表示文件或文件夹是否存在,存在会返回True
string fullname = myfile.FullName; //获取文件或文件夹的完整路径名
DateTime lastTime = myfile.LastAccessTime; //获取或设置最后一次访问文件或文件夹的时间
DateTime lastWrite = myfile.LastWriteTime; //获取或设置最后一次修改文件夹或文件夹的时间
string name = myfile.Name; //获取文件名,不能修改哦
long length = myfile.Length; //返回文件的字节大小
//CreationTime,LastAccessTime,LastWriteTime都是可以被修改的。

如何选择用哪一个类? File or FileInfo
Directory/File只包含静态方法,不能被实例化,只需要提供合适的文件系统对象路径就可以使用,使用效率较高
当只对文件或文件夹执行一次操作,使用这些就很有效。
DirectoryInfo/FileInfo 如果使用一个对象执行多个操作,使用这些类就很高效。
因为它们在构造时就读取了文件系统对象的身份验证和其他信息,无论调用了多少方法,都不需要再次读取这些信息。
上面只列出了操作文件,操作文件夹则需要用DirectoryInfo或Directory

用 C# 轻松读取、改变文件的创建、修改、访问时间的更多相关文章

  1. NIO入门之轻松读取大文件

    NIO入门之轻松读取大文件 今天同事碰到了一个问题,从游戏服务器下载下来的输出log有一个多G大.用记事本打不开,EditPlus也打不开,都提示文件太大.用word也打不开,提示文件大于512M.打 ...

  2. Linux改变文件或目录的访问权限命令

    使用  ll  或  ls -l 指令时 第一列会显示出目录下文件的权限 例如∶ -rw-r-r- 横线代表空许可.r代表只读,w代表写,x代表可执行.注意这里共有10个位置.第一个字符指定了文件类型 ...

  3. C# 轻松读取、改变文件的创建、修改、访问时间 z

    // 读取文件的创建.修改.访问时间FileInfo fi = new FileInfo("C://test.txt");Console.WriteLine(fi.Creation ...

  4. java读取ldif文件并创建新的节点

    所需jar包ldap.jar. jldap-4.3-source.jar http://www.java2s.com/Code/Jar/l/Downloadldapjar.htm 浏览器输入http: ...

  5. delphi获取文件的创建/修改时间、按时间删除指定文件下的文件

    uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrl ...

  6. mp4、AAC数据格式、解析文件的创建修改时间

    AAC文件 资料: http://blog.csdn.net/u013427969/article/details/53091594 http://blog.chinaunix.net/uid-260 ...

  7. 八、Delphi10.3读取JSON文件,并修改JSON数组一条内容后保存到文件

    一.我们有一个JSON文件,如下: { "在野": [ { "城池": 0, "武将": 74, "登场年": 190 ...

  8. Qt-QML-C++交互实现文件IO系统-后继-读取XML文件和创建XML文件

    在前面两篇中,大致完成了一个文件IO的读和写操作.前面两篇文章链接 http://blog.csdn.net/z609932088/article/details/71488250 http://bl ...

  9. [添加用户]解决useradd 用户后没有添加用户Home目录的情况,Linux改变文件或目录的访问权限命令,linux修改用户密码

    将nobody用户添加到nogroup 组:usermod -g nogroup nobody cat /etc/passwd|grep nobodynobody:x:65534:65534:nobo ...

随机推荐

  1. UIView上的按钮跳转到一个控制器UIViewController上去

    我现在有一个UIControllerView 里面addView了一个UIView,我在点击UIView的时候转到另一个UIControllerView,按上面的导航条上面的返回按钮返回第一个UICo ...

  2. android Gui系统之WMS(1)----window flags & view flags

    SurfaceFlinger 前面说的,就是一个surface的合成.SurfaceFlinger就是一个默默的记录着,它不会对surface的内容有什么改动. WMS(WindowsManagerS ...

  3. 模仿password输入框

    function hiddenPass(event) { var password0 = document.getElementById("password0"); var pas ...

  4. .Net开源网络爬虫Abot介绍

    .Net中也有很多很多开源的爬虫工具,abot就是其中之一.Abot是一个开源的.net爬虫,速度快,易于使用和扩展.项目的地址是https://code.google.com/p/abot/ 对于爬 ...

  5. SQL Server:孤立用户详解

    SQL Server 的用户安全管理分两层,整个SQL Server 服务器一层,每个数据库一层. 在服务器层的帐号,叫登录账户(SQL Server:服务器角色),可以设置它管理整个SQL Serv ...

  6. CKEditor与CKFinder的配置(ASP.NET环境)

    CKEditor是一个专门使用在网页上的所得文字编辑器,适用于PHP.ASP.NET.Java等后端开发语言.CKEditor原名为FCKeditor,“FCK” 是这个编辑器的作者的名字Freder ...

  7. 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点

    深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 2011-12-28 23:00 by 汤姆大叔, 139489 阅读, 119 评论, 收藏, 编辑 才华横溢的 ...

  8. 继续说一下openjson 以及 json path 的使用 (2)

    在openjson 里面,其实是可以把数据类型array里面的值遍历出来的,举个栗子 ) = N' {"name":"test", "obj" ...

  9. MySQL创建数据库和表的Demo

    Demo: 创建数据库的语法 1.基本语法 create database tour character set gbk; use tour; 无主键自增长的 create table EMB_T_E ...

  10. JProfiler9安装 监控Tomcat

    本地客户端:jprofiler_windows-x64_9_1.zip 服务器端:jprofiler_linux_9_1.sh 服务器端系统为:CentOS6.5 X64 客户端JProfiler,详 ...