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

创建时间是文件存入到电脑中的时间,而修改时间则是改变起内容的最后时间

// 读取文件的创建、修改、访问时间
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(-1));
File.SetLastWriteTime("C://test.txt", DateTime.Now.AddYears(-2));
File.SetLastAccessTime("C://test.txt", DateTime.Now.AddYears(-3));
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 将文件显示出来,方便操作。

 

时间: 2024-10-02 09:38:56

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

LINUX学习(十)Linux改变文件或目录的访问权限命令

Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户.其他用户.所有者一般是文件的

简析Linux中如何改变文件或目录的访问权限_unix linux

Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户.其他用户.所有者一般是文件的

php写入、删除、复制文件及创建修改时间例子

例子1: 读写文件  代码如下 复制代码 <?php $filename = 'txt/write.txt'; //定义要写入的内容 $content = "李先生 36 山东nr王先生 49 湖南nr孙先生 40 河北"; //使用is_writable()函数确定文件存在并且可写 if(is_writable($filename)){ //把文件写入到文件尾,应选择操作标记a if(false == ($handle = fopen($filename, 'a'))){ ec

Nodejs中读取中文文件编码问题、发送邮件和定时任务实例_node.js

关于nodejs读取中文文件真是折腾了不少时间,网上各种方案,最后没有一个适用我,好在解决了. 下面的三个知识点都是从项目中抽出的,要单独运行脚本的话需要用全局模式来安装模块,比如安装中文转换模块(后续其它的也需要这么做): 复制代码 代码如下: npm install -g iconv-lite npm install -g nodemailer npm install -g node-schedule 1.nodejs读取中文文件编码问题 准备一个文本文件(当然也可以是csv文件等)test

linux下文件的创建时间、访问时间、修改时间和改变时间

可以通过stat命令查看文件的状态    可以看到该文件的访问时间.修改时间.改变时间均为13:36:55.此处这一时间也是该文件的创建时间,因为文件创建后没有发生过访问.修改和改变.     访问时间(accesstime):读取一次文件的内容,该时间便会更新.比如对这个文件使用less命令或者more命令.(ls.stat这样的命令不会修改文件访问时间) 可以看到对文件使用more\less\cat命令后文件的访问时间分别变化为最后一次访问的时间,而文件的修改时间和改变时间并没有发生变化.

php学习笔记--高级教程--读取文件、创建文件、写入文件

打开文件:fopen:fopen(filename,mode);//fopen("test.txt","r"): 打开模式:r 只读方式打开,将文件指针指向文件头 r+ 读写方式打开,将文件指针指向文件头 w 写入方式,指向文件头,如果不存在则尝试创建 w+ 读写方式,指向文件头,如果不存在则尝试创建 a 写入方式打开,指向文件末尾,如果不存在则尝试创建 a+ 读写方式打开,指向文件末尾,如果不存在则尝试创建 读取文件:fread:fread(); readfile

java.util.zip创建和读取zip文件的类

写了一个用java.util.zip创建和读取zip文件的类 跟大家分享一下 里面用了递归调用 呵呵 近期用了不少递归调用!有空总结一下! /** TestZip.java coding by Serol Luo. rollingpig@163.com 2003/07/03 http://www.chinaunix.net/forum/viewforum.php?f=26 转载请保留此信息 */ import java.util.*; import java.util.zip.*; import

c#文件的创建、读取及写入

在c#中运用到操作流时,首先要加入以下两个命名空间 using System.IO; using System.Collections; 我总结了以下几种方式来进行IO操作,很简便,但却很实用 目录的创建 文件的创建 文件读取与写入 文件的按逐行读取 以上代码虽然很简洁,但是在实际操作中使用起来可是很方便的,这只是我自己工作中总结的 ,大家可以去试下,使用它可以用最少的代码实现自己想要的效果.

c++的问题-C++中的从文件中读取数据并用链表创建的问题,请帮我看一下我的代码在哪里出现了问题

问题描述 C++中的从文件中读取数据并用链表创建的问题,请帮我看一下我的代码在哪里出现了问题 Phone* creat() { ifstream file("Phone.txt"); if( !file ) { for( int i = 0 ; i < 7; i++ ) cout< cout cout system("pause"); system("cls"); } next=NULL; Phone *pNew,*head,*q;