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

// 读取文件的创建、修改、访问时间
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-12-24 18:29:39

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

[添加用户]解决useradd 用户后没有添加用户Home目录的情况,Linux改变文件或目录的访问权限命令,linux修改用户密码,usermod的ysuum安装包。飞

usermod的yum安装包: shadow-utils 将nobody用户添加到nogroup 组: usermod -g nogroup nobody cat /etc/passwd|grep nobody nobody:x:65534:65534:nobody:/var/lib/nobody:/bin/bash 第3个字段是65534:意思就是,UID(用户的ID)是500. 第4个字段是65534:意思就是.GID(用户的组ID)的500. 使用usermod -g nogroup no

查询或修改文件的创建、访问、修改等时间戳信息

查询或修改文件的创建.访问.修改等时间戳信息.(作者写了一个命令程序以支持这些操作,程序下载链接:http://down.51cto.com/data/2286646) 这是一个命令程序,需要获取命令行参数才可以工作.命令帮助信息如下: setfiletime 文件时间戳修改命令. setfiletime [-q type] | [-s sametime] | [[-c createtime] [-aaccesstime] [-w wri tetime]] | [-h] | [-0] | [-1

Android资源文件之创建与访问

资料来源于官方api文档 Android资源文件之创建与访问 Android适配之创建别名资源 如果你想将某一资源用于多种设备配置(但是不想作为默认资源提供), 则无需将同一资源放入多个备用资源目录中.相反,可以(在某些情况下)创建备用资源,充当保存在默认资源目录下的资源的别名. 注: 并非所有资源都会提供相应的机制让你创建指向其他资源的别名.特别是, xml/目录中的动画资源.菜单资源.原始资源以及其他未指定的资源均不提供此功能. 例如,加入你有有一个应用图片icon.jpg, 并且需要不同区

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

使用  ll  或  ls -l 指令时 第一列会显示出目录下文件的权限 例如∶ -rw-r-r- 横线代表空许可.r代表只读,w代表写,x代表可执行.注意这里共有10个位置.第一个字符指定了文件类型.在通常意义上,一个目录也是一个文件.如果第一个字符是横线,表示是一个非目录的文件.如果是d,表示是一个目录. 确定了一个文件的访问权限后,用户可以利用Linux系统提供的chmod命令来重新设定不同的访问权限.也可以利用chown命令来更改某个文件或目录的所有者.利用 chgrp命令来更改某个文件

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

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

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

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,DateUtils; ... //获取文件的创建时间 function GetFileCreationTime(const FileName: String): TDateTime; var FileTime: TFileTime; LocalFileTime: TFileTime; hFile: TH

如何用golang获取linux上文件的创建/修改时间

在linux上想获取文件的元信息,我们需要使用系统调用lstat或者stat. 在golang的os包里已经把stat封装成了Stat函数,使用它比使用syscall要方便不少. 这是os.Stat的原型: func Stat(name string) (FileInfo, error) Stat returns a FileInfo describing the named file. If there is an error, it will be of type *PathError. 返

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

一.我们有一个JSON文件,如下: { "在野": [ { "城池": 0, "武将": 74, "登场年": 190 }, { "城池": 0, "武将": 11, "登场年": 208 }, { "城池": 29, "武将": 78, "登场年": 198 } ], "跟随": [ {

NIO之轻松读取大文件

今天碰到了一个问题,从游戏服务器下载下来的输出log有一个多G大.用记事本打不开,EditPlus也打不开,都提示文件太大.用word也打不开,提示文件大于512M.打不开怎么查找错误啊.于是他问我解决办法.我想了想,决定写一个简单的程序读取这个log,把这个log切分成一些小的可以用Editplus打开的文本.正好前段时间看了一些NIO的东西,所以决定用NIO来写.没想到,10几行代码就搞定了.下面附上源代码: ReadLargeTextWithNIO.java import java.io.