文件修改时间和访问时间不一致
- 格式:docx
- 大小:210.58 KB
- 文档页数:4
如何修改⽂件的“创建时间”和“修改时间”(WindowsLinuxmacOS)作者:gc(at),主页:1. Windows(创建时间,修改时间,访问时间)图形界⾯点击⼀个⽂件右键 “属性” 即可查看⽂件的时间属性,可以看到有 “创建时间”、“修改时间” 和 “访问时间” 三个属性。
创建时间:该⽂件在本载体本地址上创建的时间修改时间:在属性中保存的最后⼀次修改的时间访问时间:在属性中保存的最后⼀次访问的时间“创建时间” 和 “修改时间” ⽐较好理解,但 “访问时间” 似乎有点特殊,查看⽂件属性、打开⽂件查看,甚⾄设置 “只读”、“隐藏” 属性都不会改变 “访问时间”。
只有在对⽂件进⾏编辑后访问时间才会改变。
这也就是我们会发现访问时间与修改时间是⼀样的原因。
修改时间的⼯具:Attribute Changer (免费,推荐!)BulkFileChanger (免费)NewFileTime (免费,UI 略逊)命令⾏修改CMD:#修改当前系统时间date 2021/01/01time 10:59:30#修改时间,注意是连续两个英⽂逗号copy ⽂件名 +,,#修改时间和访问时间,注意是连续两个英⽂句号copy ⽂件名 +..# 注意修改完毕需要将系统时间修改过来(或者等待 NTP 同步)⼩技巧:在⽂件夹上添加 “命令提⽰符” 右键快捷访问菜单reg add "HKEY_CLASSES_ROOT\Folder\shell\CmdPrompt" /v ""/t REG_SZ /d"Command Prompt" /freg add "HKEY_CLASSES_ROOT\Folder\shell\CmdPrompt\command" /v ""/t REG_SZ /d"cmd.exe /k cd %l" /fPowershell(推荐)set t '01/01/2021 01:01:01'# 时间格式:MM/DD/YYYY hh:mm:ssecho $tls 'sysin.txt' | foreach-object {$_.LastWriteTime = $t; $_.CreationTime = $t; $_.LastAccessTime = $t}# 也可以单独设置不同的时间ls 'sysin.txt' | foreach-object {$_.LastWriteTime = '01/01/2021 01:01:01'; $_.CreationTime = '02/02/2021 01:01:01'; $_.LastAccessTime = '03/03/2021 01:01:01'}⼩技巧:在⽂件夹上添加 “PowerShell” 右键快捷访问菜单reg add "HKEY_CLASSES_ROOT\Folder\shell\PowerShellMenu" /v ""/t REG_SZ /d"PowerShell" /freg add "HKEY_CLASSES_ROOT\Folder\shell\PowerShellMenu\command" /v ""/t REG_SZ /d"powershell.exe -NoExit -Command Set-Location -LiteralPath '%L'" /f2. Linux(修改时间,访问时间)注意:Linux(包括传统 Unix)中没有 “创建(creation)” 时间的概念(除⾮使⽤)查看⽂件时间信息(stat 命令)# 创建⼀个测试⽂件$ touch sysin.txt# 使⽤ stat 命令查看⽂件时间信息$ stat sysin.txtFile: sysin.txtSize: 0 Blocks: 0 IO Block: 4096 regular empty fileDevice: fd01h/64769d Inode: 405343 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2021-01-08 13:22:44.792348339 +0800Modify: 2021-01-08 13:22:44.792348339 +0800Change: 2021-01-08 13:22:44.792348339 +0800Birth: -有如下三种时间Access: ATime —— ⽂件的最近访问时间。
serv-u文件修改时间与本地时间相差8小时的解决方法-回复【servu文件修改时间与本地时间相差8小时的解决方法】在进行文件管理和维护时,我们经常会遇到文件的修改时间与本地时间相差的问题。
这可能是由于不同的时区设置或操作系统的时间设置导致的。
在本文中,我们将一步一步地解决servu文件修改时间与本地时间相差8小时的问题。
第一步:检查时区设置在解决文件修改时间与本地时间相差8小时的问题之前,我们首先要检查时区设置。
有时,不正确的时区设置可能导致时间差异。
我们可以按照以下步骤检查和更改时区设置:1. 在Windows操作系统中,打开“控制面板”。
2. 在“控制面板”窗口中,选择“时钟、语言和区域”。
3. 在“时钟、语言和区域”窗口中,选择“日期和时间”。
4. 在“日期和时间”窗口中,选择“更改时区”。
5. 在“更改时区”窗口中,选择正确的时区。
6. 确认更改后,点击“确定”按钮保存更改。
经过此步骤,我们已经检查和更改了时区设置。
如果时区设置是正确的,那么我们需要进行下一步的操作。
第二步:更新操作系统补丁有时,操作系统的补丁可能修复了与时间相关的问题。
我们可以尝试更新操作系统的补丁,以查看是否可以解决文件修改时间与本地时间相差8小时的问题。
以下是更新操作系统补丁的一般步骤:1. 打开Windows操作系统的更新设置。
此设置通常位于“控制面板”>“安全和更新”或“设置”>“更新和安全”中。
2. 点击“检查更新”按钮,以检查操作系统是否有可用的更新。
3. 如果系统检测到可用的更新,选择并安装这些更新。
4. 安装完所有更新后,重新启动计算机。
更新操作系统补丁后,我们可以尝试检查和修改servu文件的时间,看是否仍然存在8小时的差异。
如果上述两个步骤仍未解决问题,我们可以尝试以下另外一些方法。
第三步:手动设置文件的修改时间如果servu文件的修改时间与本地时间的差异仍然存在,我们可以尝试手动设置文件的修改时间来解决这个问题。
解决电脑时间不准的方法范本1份解决电脑时间不准的方法 1电脑时间不准,可能有这么几个原因:1、主板电池(cmos)没电,2、有病毒(此类病毒修改时间的目的是让杀毒软件用不了,或者导致某些软件运行不正常,比如证券炒股软件),3、你没有修改时间的.权限。
1、如何判断是否cmos电池没电。
启动后进入bios,修改时间,保存退出,关掉电脑重启,再进入cmos查看,如果时间是按照修改之后运行的,就说明电池OK。
否则就需要更换电池,如果更换了好电池之后还是不行,那可能是主板出问题了。
2、如何判断是病毒。
有的电脑在windows下时间可以修改,但是修改之后又很快跳到一个错误的时间,这种情况是病毒。
如果时间可以修改,但重新启动之后时间就不对。
那么可以在时间修改之后,启动电脑,进入bios看,如果这时候时间就错了,说明是主板电池没电了,如果这时候时间是对的,进入windows之后时间就错了,说明是病毒。
3、检查时间修改权限:先搞清楚你的windows用户名,如果不知道则按下ctrl+alt+del三个键查看。
1.点击开始__运行输入secpol.msc,点确定。
(或者控制面板管理工具本地安全策略)2.接着会出现本地安全策略的管理对话框,在左边的树形框内点__本地策略__用户权利指派3.在右边的列表中找到并双击更改系统时间,弹出一个窗口。
(如果操作无法完成,说明你没有管理权限,用administrator重新登录)里面列出了有权限的用户列表,如果发现没有你的用户名,则说明你原先没有权限。
如果已经有你的用户名,说明你有权限,但是如果时间还是无法修改,说明是病毒。
好了,如果是属于没有权限的情况,则增加权限后再修改时间。
如果判断是病毒,而当前又无有效杀毒方法,则建议取消所有用户的时间修改权限,然后再本文中往后看!windows xp:取消权限:从列表中选择用户,点删除,再点确定增加权限:点击添加用户或组,再点高级,从列表中选择用户,确定选择,再点确定关闭。
macOS命令行实用技巧如何快速查看和修改文件时间戳macOS命令行提供了许多实用的工具和指令,使得文件和文件系统的管理变得更加高效。
其中一个重要的功能是可以查看和修改文件的时间戳。
时间戳是指文件的创建时间、修改时间和访问时间等信息。
通过掌握一些基本的命令行技巧,您可以快速地对文件的时间戳进行查看和修改。
本文将介绍macOS命令行下的实用技巧,帮助您更好地管理文件时间戳。
一、查看文件时间戳1.查看文件的创建时间戳要查看文件的创建时间戳,可以使用"ls"命令结合"-l"选项。
在命令行中输入以下命令:```shellls -l filename```其中,"filename"是您要查看时间戳的文件名。
执行该命令后,您将看到类似以下的输出:```shell-rw-r--r-- 1 user staff 5245 Dec 3 10:15 filename```输出结果的第五列显示了文件的时间戳,其中的"Dec 3 10:15"表示文件的创建日期和时间。
2.查看文件的最后修改时间戳和访问时间戳除了文件的创建时间戳,您还可以查看文件的最后修改时间戳和访问时间戳。
同样使用"ls"命令,但加上不同的选项即可。
在命令行中输入以下命令:```shellls -lT filename```执行该命令后,您将看到包括最后修改时间戳和访问时间戳在内的完整时间戳信息。
二、修改文件时间戳1.修改文件的创建时间戳在某些情况下,您可能需要修改文件的创建时间戳。
macOS命令行提供了"touch"命令,可以轻松地完成这个任务。
在命令行中输入以下命令:```shelltouch -t yyyymmddhhmm filename```其中,"yyyymmdd"表示您要修改的日期,"hhmm"表示您要修改的具体时间,"filename"是要修改时间戳的文件名。
电脑时间不对的解决方法
1. 哎呀,电脑时间不对可真让人头疼!先试试手动调整呀,就像你给手表调时间一样简单。
比如,你进入电脑的设置里面,找到时间和日期的选项,然后轻轻松松就可以把时间改对啦!
2. 嘿,还有一招!检查一下是不是时区设置错啦!这就好比你本来在北京时间,却以为自己在纽约时间呢。
像我之前就犯过这种错,赶紧改过来就好啦!
3. 要不看看是不是主板电池没电啦?这就好像汽车没油了跑不动一样呀。
如果是这个问题,那去换个电池就好咯!
4. 哎呀呀,系统同步时间这个办法也不错呀!就跟你跟着大部队走总不会错一样。
让电脑自动和网络上的标准时间同步,多方便!
5. 咦,会不会是电脑中毒了呀?病毒这玩意儿可讨厌啦,就像个捣蛋鬼。
快杀杀毒看看呢!
6. 嘿,有时候一些软件也可能捣乱影响时间哦!这就像班级里有个调皮同学捣乱一样。
看看有没有奇怪的软件在搞鬼吧!
7. 是不是电脑长时间没重启啦?就跟人累了要休息一样呀。
重启一下说不定时间就正常啦!
8. 哎呀,如果都不行,那咱就请教高手呗!就像你自己解决不了问题找老师帮忙一样。
总能找到办法解决这电脑时间不对的问题的!
我的观点结论就是,遇到电脑时间不对别慌张,这么多办法总有一个能解决呀!。
linux中touch的作用Linux中的touch命令是一个非常有用的工具,它的作用主要是用来创建空文件或更新已有文件的时间戳。
虽然看起来很简单,但实际上,touch 命令在日常的文件管理中有着广泛的应用。
本文将逐步回答关于Linux中touch命令的主题,从它的基本用法到一些高级用法,以及一些实际场景中的应用。
一、touch命令的基本用法首先,我们来介绍一下touch命令的基本用法。
在终端中输入以下命令即可创建一个新的空文件:touch filename这个命令将创建一个名为filename的空文件。
如果filename不存在,那么touch命令会在当前目录下创建一个新的文件;如果filename已经存在,那么touch命令会更新该文件的访问时间和修改时间为当前时间。
二、touch命令的高级用法虽然touch命令的基本用法很简单,但是它具有一些高级用法,可以更加灵活地操作文件时间戳。
1. 修改文件的访问时间通过touch命令,我们可以仅更新文件的访问时间,而不会修改文件的内容。
这是通过使用-a选项来实现的。
例如,输入以下命令,即可更新文件的访问时间:touch -a filename2. 修改文件的修改时间与修改访问时间相似,我们可以使用touch命令仅更新文件的修改时间。
这是通过使用-m选项来实现的。
例如,输入以下命令,即可更新文件的修改时间:touch -m filename3. 自定义时间戳除了使用当前时间戳,我们还可以使用自定义的时间戳来更新文件的时间。
通过使用-t选项,并按照指定的格式输入时间戳,即可实现这个功能。
例如,输入以下命令,即可将文件的访问时间和修改时间设置为2022年1月1日:touch -t 202201010000 filename4. 批量更新文件时间戳如果我们需要批量更新多个文件的时间戳,可以使用通配符来实现。
例如,输入以下命令,即可将所有以txt结尾的文件的时间戳更新为当前时间:touch *.txt三、touch命令的实际应用接下来,我们来介绍一些touch命令在实际场景中的应用。
javanewdate结果与操作系统时间相差8小时处理解决方法在Java中,Date类表示特定的瞬间,精确到毫秒级别。
然而,很多时候我们会发现Java中的Date对象与操作系统时间相差8小时,这是因为Java的Date对象默认使用的是格林尼治标准时间(GMT),而我们通常使用的是本地时间。
解决这个问题的方法有很多,下面我会介绍几种常用的方法:1. 使用Calendar类:Calendar类是Java中处理日期和时间的重要类之一、我们可以通过它来获取当前的本地时间,并将其转换为Date对象。
```javaCalendar calendar = Calendar.getInstance(;Date currentTime = calendar.getTime(;```这样获取的Date对象将会是本地时间,解决了与操作系统时间相差8小时的问题。
2. 使用SimpleDateFormat类:SimpleDateFormat类是Java中用于格式化和解析日期的类。
我们可以使用它来将字符串表示的日期转换为Date对象,并指定时区为本地时区。
```javaSimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");sdf.setTimeZone(TimeZone.getDefault();Date date = sdf.parse("2024-01-01 12:00:00");```在上面的代码中,我们通过设置SimpleDateFormat的时区为默认时区来保证获取到的Date对象与操作系统时间一致。
```javaLocalDateTime localDateTime = LocalDateTime.now(;Date currentTime =Date.from(localDateTime.atZone(ZoneId.systemDefault().toInstant( );```在上面的代码中,我们使用LocalDateTime类来获取当前的本地时间,并将其转换为Date对象。
电脑中病毒了,如何快速判断一个文件为病毒文件?现在的病毒真是铺天盖地,尽管每天都会使用杀毒软件,可病毒依然不断,所以杀毒的时候经常会抱着“宁可枉杀一千,决不漏掉一个”的心态,将检测出的“病毒”统统杀掉,殊不知我们可能删掉了一些被感染的系统文件。
所以小编建议大家最好安装专业的杀毒软件,比如瑞星全功能安全软件,可以做到只清除病毒不删除染毒文件,避免杀毒时删除重要文件的情况。
但仅靠杀毒软件来识别是不够的,现在小编就教大家几个识别病毒文件的方法。
一、文件时间如果你觉得电脑有问题,可用杀毒软件检查后,依然没什么反映或只除掉一部分病毒后还是觉得不对劲,就可以根据文件的时间来检查可疑对象。
文件时间分为创建时间、修改时间(还有一个访问时间,现在不提),可以点选文件,右击,选择菜单中的属性就可以在“常规”那页看到这些时间了。
通常病毒、木马文件的创建时间和修改时间都比较新,如果及时发现,时间基本就是近几日或当天。
c:/windows和c:/windows/system32,有时还有c:/windows/system32/drivers,如果是2000系统,就把上面的windows改成winnt,这些地方都是病毒木马常呆的地方,按时间排下序(查看-详细资料,再点下标题栏上的“修改时间”),查看下最新几日的文件,特别注意exe和dll文件以及dat、ini、cfg文件,不过后面这些正常的文件也有比较新的修改时间,不能确认就先放一边,重点找exe和dll,反正后三个也不是执行文件。
一般来说系统文件特别是exe和dll会有如此新的修改时间。
当然更新或安装的其它应用软件可能会有新的修改时间,可以再对照下创建时间,另外自己什么时间有没装过什么软件应该知道,实在不知道用搜索功能,在全硬盘上找找相关时间有没建立什么文件夹,看看是不是安装的应用软件,只要时间对得上就是正常的。
如果都不符合,就是病毒了,咱们直接删除。
说明一点:正如不是所有最新的文件都是病毒一样,也不是说所有病毒的时间都是最新的,有的病毒文件的日期时间甚至会显示是几年前。
关于Office word内嵌MAC时间的提取李子川【摘要】基于微软公司混合文档结构创建文件的MAC时间往往令人迷惑,因为它在计算机系统中的存放位置有二处,一个是存放在文件分配表目录项中,另一处存放位置嵌入到文件中,同一文件的创建时间在二处是不一致的,为了获得文件的真正文件属性时间,笔者根据文献对office文档二进制格式进行分析.提出了一种新的提取office word内嵌MAC时间的方法.【期刊名称】《黑龙江科技信息》【年(卷),期】2010(000)033【总页数】1页(P34)【关键词】计算机系统时间;UTC;CompoundFile;MAC时间【作者】李子川【作者单位】中国刑警学院计算机犯罪侦查系电子物证司法检验教研室,辽宁,沈阳,110035【正文语种】中文时间在计算机世界中无处不在,但是如同现实世界中的时间一样,计算机取证中的时间总是令人迷惑。
有经验的的检查人员知道时间证据很复杂且包括很多不确定性,需要大量的研究和实证经验才能获得一个合法的时间证据,电子物证中的时间信息的研究分析是电子取证过程中的一项重要措施,时间信息的研究分析对鉴定结论起着十分重要的作用。
而MS office Word文档的创建时间,修改时间,访问时间,在计算机系统中的存储位置有二处,这二处存放的时间有时是不同的,为了找到文件的正真的MAC时间,对MS office文档的二进制结构进行了分析,找到了一种提取office内嵌创建时间的方法。
windows混合文档是有一些虚拟流组成的,文件中的各部分数据都可以看成线性流中的一部分。
虽然文件存储在磁盘中可能是分离的。
虚拟流可能是用户数据,也可能是为了保持文件结构而存储的信息。
最重要是的对于windows混合文档将本身也作为虚拟流。
在一个混合文档中以扇区为单位分配信息,每个扇区的大小根据混合文档类型而定义的,但是一般混合文档扇区的大小为512B,每个虚拟流都是一些有序的扇区组成的。
三步解决文件管理混乱问题1. 引言1.1 概述在数字化时代,我们每天都会面临大量的文件和文档。
对于个人或组织而言,有效地管理这些文件变得非常重要。
然而,在处理过程中,很容易出现文件管理混乱的问题:文件乱堆、难以寻找特定文件、无法确定最新版本等等。
这些问题不仅消耗时间和精力,还可能导致重要信息丢失或泄露。
因此,有必要采取一些行动来解决文件管理混乱问题。
1.2 文章结构本文将指导您通过三个步骤有效解决文件管理混乱问题。
首先,在第一步中,我们将建立一个整理计划,审视当前的文件组织结构,并制定整理优先级和目标,并确立清晰的分类标准。
接下来,在第二步中,我们将实施整理行动,包括分类与排序文件及文档、删除无用或过时的文件,并建立有效的备份和归档机制。
最后,在第三步中,我们将介绍持续维护与改进的方法,包括确定定期清理与更新计划、探索利用文件管理工具与技巧,并建立良好的文件管理习惯与流程。
1.3 目的本文的目的是帮助读者了解和解决文件管理混乱问题,提供实用的步骤和建议,以改善文件组织、提高效率,并确保重要信息的安全性和可访问性。
通过遵循本文提供的指导,您将能够建立一个有效的文件管理系统,并养成良好的文件管理习惯。
现在我们开始着手解决文件管理混乱问题吧!2. 文件管理混乱问题分析2.1 当前文件管理困境在当今数字化时代,我们面临着越来越多的文件和文档,如电子邮件、电子表格、演示文稿、照片和视频等。
这些文件通常以不同的格式和类型存在于各种设备、云存储和网络平台中,导致文件管理变得复杂而混乱。
首先,我们经常会遇到无序的文件命名和结构,导致很难快速找到需要的文件。
有时候我们可能会使用不规范的命名方式,或者忘记了给文件添加描述性标签,这使得整理和归类变得非常困难。
其次,缺乏统一的文件存放位置也是一个普遍存在的问题。
我们可能会在多个设备上存储相同的文件副本,或者将它们散落在不同的云存储服务中。
这造成了存储空间浪费,并且增加了数据丢失或损坏的风险。
解决XP与Internet时间无法同步问题
Windows与Internet时间无法同步,一般可能是以下两种状况:
1、在获取最近一次同步状态时出错,Rpc服务器不可用;这一般是因为禁用或关闭了Windows Time服务,将此服务启动即可。
2、Windows在与进行同步时出错。
这种情况稍微复杂些,此状况的解决办法有:
A、有可能是时钟服务器故障或忙,可以多试几次或换其他时钟服务器;
B、有可能是安装并开启了第三方网络防火墙,比如天网、金山网镖,同步时可以暂时关闭或退出防火墙软件,WindowsXP中内置的Internet连接防火墙除外。
C、如果以上两种方法无效,请将“自动与Internet时间服务器同步(S)”钩上,点击应用,然后再点“立即更新(U)”;如果原来是选中“自动与internet时间服务器同步”请先去掉勾选,再钩上确定退出,然后再进去更新。
此外,Windows XP系统自带的两个网上校时服务器很不好用,如果还是经常出现连接超时,可以给Windows XP添加更多的校时服务器,方法如下:
开始菜单---运行---输入Regedit:
打开注册表:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers
在打开的注册表窗口右边点击鼠标右键----“新建(N)"----“字符串值”,将该“字符串值”名字命名为数字,然后将该键值的数据改为校时服务器的网址即可,将“默认”的数值改为你想要的校时服务器的名称就是默认的校时服务器。
python如何修改⽂件时间属性⽬录1、获取⽂件的创建、修改、访问时间2、更改⽂件的修改、访问时间(创建时间没查到怎么修改,暂时不记录)3、放在同⼀个py⽅便直接复制使⽤4、补充修改⽂件的创建时间1、获取⽂件的创建、修改、访问时间# -*- encoding=utf-8 -*-import osimport timedef get_file_time(filename):filename = os.path.abspath(filename)create_time = os.path.getctime(filename) # 创建时间print('old create time:{}'.format(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(create_time))))update_time = os.path.getmtime(filename) # 修改时间print('old update time:{}'.format(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(update_time))))access_time = os.path.getatime(filename) # 访问时间print('old access time:{}'.format(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(access_time))))return create_time, update_time, access_timeif __name__ == '__main__':get_file_time('E:/a.txt')2、更改⽂件的修改、访问时间(创建时间没查到怎么修改,暂时不记录)# -*- encoding=utf-8 -*-import osimport timedef set_file_time(filename, updatetime, access_time):# 先传修改时间,再传访问时间filename = os.path.abspath(filename)new_updatetime = time.mktime(time.strptime(updatetime, '%Y-%m-%d %H:%M:%S'))new_access_time = time.mktime(time.strptime(access_time, '%Y-%m-%d %H:%M:%S'))os.utime(filename, (new_access_time, new_updatetime))if __name__ == '__main__':set_file_time('E:/a.txt', '2018-01-08 10:50:20', '2019-07-15 04:03:01')3、放在同⼀个py⽅便直接复制使⽤# -*- encoding=utf-8 -*-import osimport timedef get_file_time(filename):filename = os.path.abspath(filename)# 创建时间create_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(os.path.getctime(filename)))# 修改时间update_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(os.path.getmtime(filename)))# 访问时间access_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(os.path.getatime(filename)))return create_time, update_time, access_timedef set_file_time(filename, updatetime, access_time):# 先传修改时间,再传访问时间filename = os.path.abspath(filename)new_update_time = time.mktime(time.strptime(updatetime, '%Y-%m-%d %H:%M:%S'))new_access_time = time.mktime(time.strptime(access_time, '%Y-%m-%d %H:%M:%S'))os.utime(filename, (new_access_time, new_update_time))def debug():create_time, update_time, access_time = get_file_time('E:/a.txt')set_file_time('E:/a.txt', update_time, access_time)get_file_time('E:/a.txt')if __name__ == '__main__':debug()4、补充修改⽂件的创建时间import osimport timefrom pywintypes import Time # 可以忽视这个 Time 报错(运⾏程序还是没问题的)from win32con import FILE_FLAG_BACKUP_SEMANTICSfrom win32con import FILE_SHARE_WRITEfrom win32file import CloseHandlefrom win32file import CreateFilefrom win32file import GENERIC_WRITEfrom win32file import OPEN_EXISTINGfrom win32file import SetFileTimedef modify_file_create_time(filename, create_time_str, update_time_str, access_time_str):try:format_str = "%Y-%m-%d %H:%M:%S" # 时间格式# f = CreateFile(filename, GENERIC_READ | GENERIC_WRITE, 0, None, OPEN_EXISTING, 0, 0)f = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_WRITE, None, OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS, 0)create_time = Time(time.mktime(time.strptime(create_time_str, format_str)))update_time = Time(time.mktime(time.strptime(update_time_str, format_str)))access_time = Time(time.mktime(time.strptime(access_time_str, format_str)))SetFileTime(f, create_time, update_time, access_time)CloseHandle(f)print('update file time success:{}/{}/{}'.format(create_time_str, update_time_str,access_time_str))except Exception as e:print('update file time fail:{}'.format(e))if __name__ == '__main__':cTime = "2019-12-13 21:51:02" # 创建时间mTime = "2019-02-02 00:01:03" # 修改时间aTime = "2019-02-02 00:01:04" # 访问时间fName = r"a.txt" # 可以是⽂件也可以是⽂件夹print(os.path.isdir(fName))modify_file_create_time(fName, cTime, mTime, aTime)以上就是python如何修改⽂件时间属性的详细内容,更多关于python修改⽂件时间属性的资料请关注其它相关⽂章!。
我们在使用杀毒软件杀毒的时候,常常会检测出很多“病毒”,许多朋友抱着“宁可错杀一堆,绝不放过一个”的态度,将检测出的“病毒”全部删掉。
其实全删是不可取的,有的是被感染的系统文件,是不能删的。
这里介绍几个识别病毒文件的方法,希望对大家有所帮助。
一、文件时间如果你觉得电脑不对劲,用杀毒软件检查后,没什么反映或清除一部分病毒后还是觉得不对劲,可以根据文件时间检查可疑对象。
文件时间分为创建时间、修改时间(还有一个访问时间,不用管),可以从文件的属性中看到,点选文件,右击,选择菜单中的属性就可以在“常规”那页看到这些时间了。
通常病毒、木马文件的创建时间和修改时间都比较新,如果你发现的早,基本就是近几日或当天。
c:\windows和c:\windows \system32,有时还有c:\windows\system32\drivers,如果是2000系统,就把上面的windows改成winnt,这些地方都是病毒木马常呆的地方,按时间排下序(查看-详细资料,再点下标题栏上的“修改时间”),查看下最新几日的文件,特别注意exe和dll文件,有时还有dat、ini、cfg文件,不过后面这些正常的文件也有比较新的修改时间,不能确认就先放一边,重点找exe和dll,反正后三个也不是执行文件。
一般来说系统文件特别是exe和dll)不会有如此新的修改时间。
当然更新或安装的其它应用软件可能会有新的修改时间,可以再对照下创建时间,另外自己什么时间有没装过什么软件应该知道,实在不知道用搜索功能,在全硬盘上找找相关时间有没建立什么文件夹,看看是不是安装的应用软件,只要时间对得上就是正常的。
如果都不符合,就是病毒了,删除。
说明一点,正如不是所有最新的文件都是病毒一样,也不是说所有病毒的时间都是最新的,有的病毒文件的日期时间甚至会显示是几年前。
当然我们还有其他的分辨方法。
二、文件名文件名是第一眼印象,通过文件名来初步判断是否可疑是最直接的方法,之所以放在时间判断后面,实在是从一大堆文件中分拣可疑分子太难了,还是用时间排下序方便些。
python两种⽅法修改⽂件的创建时间、修改时间、访问时间突如其来想知道⼀下 python 如何修改⽂件的属性(创建、修改、访问时间),于是就去⽹上搜集了可⾏⽅案,也就有了这篇博客⽅案⼀from win32file import CreateFile, SetFileTime, GetFileTime, CloseHandlefrom win32file import GENERIC_READ, GENERIC_WRITE, OPEN_EXISTINGfrom pywintypes import Time # 可以忽视这个 Time 报错(运⾏程序还是没问题的)import timedef modifyFileTime(filePath, createTime, modifyTime, accessTime, offset):"""⽤来修改任意⽂件的相关时间属性,时间格式:YYYY-MM-DD HH:MM:SS 例如:2019-02-02 00:01:02:param filePath: ⽂件路径名:param createTime: 创建时间:param modifyTime: 修改时间:param accessTime: 访问时间:param offset: 时间偏移的秒数,tuple格式,顺序和参数时间对应"""try:format = "%Y-%m-%d %H:%M:%S" # 时间格式cTime_t = timeOffsetAndStruct(createTime, format, offset[0])mTime_t = timeOffsetAndStruct(modifyTime, format, offset[1])aTime_t = timeOffsetAndStruct(accessTime, format, offset[2])fh = CreateFile(filePath, GENERIC_READ | GENERIC_WRITE, 0, None, OPEN_EXISTING, 0, 0)createTimes, accessTimes, modifyTimes = GetFileTime(fh)createTimes = Time(time.mktime(cTime_t))accessTimes = Time(time.mktime(aTime_t))modifyTimes = Time(time.mktime(mTime_t))SetFileTime(fh, createTimes, accessTimes, modifyTimes)CloseHandle(fh)return 0except:return 1def timeOffsetAndStruct(times, format, offset):return time.localtime(time.mktime(time.strptime(times, format)) + offset)if __name__ == '__main__':# 需要⾃⼰配置cTime = "2019-12-13 21:51:02" # 创建时间mTime = "2019-02-02 00:01:03" # 修改时间aTime = "2019-02-02 00:01:04" # 访问时间fName = r"E:\test_pro\fileOperate\test.xlsx" # ⽂件路径,⽂件存在才能成功(可以写绝对路径,也可以写相对路径)offset = (0, 1, 2) # 偏移的秒数(不知道⼲啥的)# 调⽤函数修改⽂件创建时间,并判断是否修改成功r = modifyFileTime(fName, cTime, mTime, aTime, offset)if r == 0:print('修改完成')elif r == 1:print('修改失败')⽅案⼆(⽆法修改⽂件创建时间)import osfile_path = "pip.txt"print(os.stat(file_path))# os.stat_result(# st_mode=33206,# st_ino=2251799813766228,# st_dev=3050226722,# st_nlink=1,# st_uid=0,# st_gid=0,# st_size=851,# st_atime=1576241919,# st_mtime=1574385498,# st_ctime=1576241919,# )# 只能修改访问时间与修改时间(暂不知道怎么修改创建时间)os.utime(file_path, (1576335480, 1576335480))print(os.stat(file_path))# os.stat_result(# st_mode=33206,# st_ino=2251799813766228,# st_dev=3050226722,# st_nlink=1,# st_uid=0,# st_gid=0,# st_size=851,# st_atime=1576335480,# st_mtime=1576335480,# st_ctime=1576241919,# )以上就是python 两种⽅法修改⽂件的创建时间、修改时间、访问时间的详细内容,更多关于python 修改⽂件的资料请关注其它相关⽂章!。
直接修改文件时间的方法我折腾了好久直接修改文件时间的方法,总算找到点门道。
我一开始是在Windows系统下尝试的。
我就想啊,这文件时间应该能像改个文件名啥的那么简单就好了。
我先在文件属性里找,想着会不会像改别的文件信息一样,直接在那里面就能修改时间。
结果呢,在常规的文件属性界面根本就没有这个修改文件时间的选项,哎,当时就觉得有点受阻,这第一波尝试就这么失败了。
后来我又想,是不是有专门的命令可以修改呢。
我就去搜啊,发现有个命令提示符的方法。
但是那命令看起来可复杂了,就好像让你照着一份完全没有头绪的食谱做菜一样。
我模糊地记得那个命令像是跟什么“touch”之类的有关(这里我可能记错了,因为当时也没太搞懂)。
我就按照网上说的一些模板往里套我的文件名和想要修改的时间,但总是出错,不是系统提示没权限,就是说格式不对之类的。
再后来呢,我就去找第三方软件了。
我试了好几个软件。
有的软件一打开,界面特别眼花缭乱的,各种功能按键都不知道干嘛的。
不过有一个软件界面还算比较简洁友好。
我就试着把文件拖进去,然后按照它的引导去找修改时间的地方。
可是这个软件呢,免费版有好多限制,只能修改少量类型文件的时间。
而且在修改一些系统保护文件的时候,还是会提示失败,毕竟这类文件被操作系统看得可紧了,不能随便乱动。
我又回到Windows系统自带的一些方法上深挖。
我发现啊,如果我先把系统时间给改掉,然后再对文件进行个随便的编辑保存,好像文件的创建时间或者修改时间就会跟着改变了。
不过这个方法比较麻烦,并且可能会影响其他正在运行的软件对于时间的判断。
比如说我有个软件它会根据系统时间来记录一些操作记录,这么一改系统时间,它的记录就乱套了。
说实话,要想真正轻松又准确地修改文件时间,真不是一件特别容易的事。
我现在觉得如果不是特别必要,还是不要轻易去尝试修改文件时间,要是弄错了可能会对文件的一些痕迹追踪或者整个系统的稳定有不好的影响。
不过要是真的想这么做,就还得再去找更专业、更靠谱的方式,像找找那些在修改系统文件方面比较擅长的人或者社区,说不定能得到更准确的答案。
为什么文件属性中的“访问时间”和“修改时间”不一致?
在Win7下,我注意到一个现象,就是经常文件属性中的“访问时间”和“修改时间”是不一致的,如下图:
这个文件是我在21:41 创建的,然后我在21:42修理里面的内容并保存。
按照常理,访问时间应该和修改时间一致才对。
现象是反而比修改时间早,很奇怪。
根据GetFileTime这个API,和文件相关的时间有3个:
BOOL WINAPI GetFileTime(
__in HANDLE hFile,
__out_opt LPFILETIME lpCreationTime,
__out_opt LPFILETIME lpLastAccessTime,
__out_opt LPFILETIME lpLastWriteTime
);
CreationTime:创建时间,很好理解,就是这个文件创建时的时间。
LastAccessTime:最后访问时间,表示文件读取,写入,复制或者执行的最后时间. LastWriteTime: 文件最后写入的时间。
从这个定义来看的话,LastAccessTime应该大于等于LastWriteTime.但是从使用来看的话,却又不是这样的。
Why?
今天看了The Old New Thing才明白过来,原来从2003 SP1起,为了性能,默认把LastAccessTime给禁用了。
我使用的是Win7系统,默认是关闭的。
那么它为什么会影响性能呢?
LastAccessTime会保存到两个地方:
∙文件属性中,作为MFT中的一条记录
∙该文件所属的目录索引中。
影响性能的主要原因是如果一个文件只是读操作的话,为了更新这个时间,就必须做一个写
操作,把该信息写入到文件属性和目录索引中去,这样一个读操作就变成了一个读+写操作。
由于现在的硬盘都非常大,几十万个文件都是常事,如果读操作再加一个写操作,那么这个
确实影响性能。
(详细可以参考Fsutil: behavior 中对于DisableLastAccess的描述,地址
附后)。
下面是各个文件系统对文件时间的支持文档:
Feature NTFS exFAT UDF FAT32
Creation time stamps(创建时间)Yes Yes Yes Yes
Last access time stamps(最后访问时间)No*Yes Yes Yes (只更新日期) Last change time stamps(最后改变时间)Yes Yes Yes Yes
Last archive time stamps(最后存档时间)No No No No
说明:
1.NTFS 本身是支持更新LastAccessTime,在Windows 2000,XP,2003中默认是开启的,Vista之后需要单独开启。
如何开启LastAccessTime的更新呢?
使用命令查询当前系统是否关闭了LastAccessTime的更新:
fsutil behavior query disablelastaccess
1 表示关闭,0表示开启
关闭LastAccessTime的更新:
fsutil behavior set disablelastaccess 1
注意:需要重启。
打开LastAccessTime的更新:
fsutil behavior set disablelastaccess 0
注意:需要重启。
事实上,上面的修改都是修改的注册表
Key: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem] Value Name: NtfsDisableLastAccessUpdate
Data Type: REG_DWORD (DWORD Value)
Value Data: (0 = disable, 1 = enable)。