问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vb 怎么更改文件的修改时间

发布网友 发布时间:2022-04-22 23:42

我来回答

5个回答

热心网友 时间:2023-08-20 16:37

用api函数更改:
Private Type FILETIME
        dwLowDateTime   As Long
        dwHighDateTime   As Long
End Type
        Private Type SYSTEMTIME
        wYear   As Integer
        wMonth   As Integer
        wDayOfWeek   As Integer
        wDay   As Integer
        wHour   As Integer
        wMinute   As Integer
        wSecond   As Integer
        wMilliseconds   As Integer
End Type
Private Const GENERIC_WRITE = &H40000000
Private Const OPEN_EXISTING = 3
Private Const FILE_SHARE_READ = &H1
Private Const FILE_SHARE_WRITE = &H2
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function SetFileTime Lib "kernel32" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long
Private Declare Function SystemTimeToFileTime Lib "kernel32" (lpSystemTime As SYSTEMTIME, lpFileTime As FILETIME) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function LocalFileTimeToFileTime Lib "kernel32" (lpLocalFileTime As FILETIME, lpFileTime As FILETIME) As Long

Private Sub SetModiTime(ByVal m_Path As String, ByVal m_Date As Date)
        Dim lngHandle        As Long
        Dim udtFileTime     As FILETIME
        Dim udtLocalTime     As FILETIME
        Dim udtSystemTime     As SYSTEMTIME

        udtSystemTime.wYear = Year(m_Date)
        udtSystemTime.wMonth = Month(m_Date)
        udtSystemTime.wDay = Day(m_Date)
        udtSystemTime.wDayOfWeek = Weekday(m_Date) - 1
        udtSystemTime.wHour = Hour(m_Date)
        udtSystemTime.wMinute = Minute(m_Date)
        udtSystemTime.wSecond = Second(m_Date)
        udtSystemTime.wMilliseconds = 0

        '   convert   system   time   to   local   time
        SystemTimeToFileTime udtSystemTime, udtLocalTime
        '   convert   local   time   to   GMT
        LocalFileTimeToFileTime udtLocalTime, udtFileTime
        '   open   the   file   to   get   the   filehandle
        lngHandle = CreateFile(m_Path, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
        '   change   date/time   property   of   the   file
        SetFileTime lngHandle, udtFileTime, udtFileTime, udtFileTime
        '   close   the   handle
        CloseHandle lngHandle
        MsgBox "The date of the file has been changed to " + Str$(m_Date), vbInformation + vbOKOnly, App.Title
End Sub

热心网友 时间:2023-08-20 16:38

方法:

热心网友 时间:2023-08-20 16:38

给你个思路
第一,在修改文件前把系统时间给改了````呵呵是不是一下子恍然大悟啊,时间改成你之前文件的修改时间
第二,修改之后再把时间调回,因为你用VB,所以基本不用加上时差。直接在程序里换成修改之前的那个时间就OK了

或者,你记下原文件修改的时间,然用VB调系统时间,调成你记下的时间,再修改文件,再调回时间。呵呵。

热心网友 时间:2023-08-20 16:39

用api函数更改:
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type
Private Const GENERIC_WRITE = &H40000000
Private Const OPEN_EXISTING = 3
Private Const FILE_SHARE_READ = &H1
Private Const FILE_SHARE_WRITE = &H2
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function SetFileTime Lib "kernel32" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long
Private Declare Function SystemTimeToFileTime Lib "kernel32" (lpSystemTime As SYSTEMTIME, lpFileTime As FILETIME) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function LocalFileTimeToFileTime Lib "kernel32" (lpLocalFileTime As FILETIME, lpFileTime As FILETIME) As Long

Private Sub SetModiTime(ByVal m_Path As String, ByVal m_Date As Date)
Dim lngHandle As Long
Dim udtFileTime As FILETIME
Dim udtLocalTime As FILETIME
Dim udtSystemTime As SYSTEMTIME

udtSystemTime.wYear = Year(m_Date)
udtSystemTime.wMonth = Month(m_Date)
udtSystemTime.wDay = Day(m_Date)
udtSystemTime.wDayOfWeek = Weekday(m_Date) - 1
udtSystemTime.wHour = Hour(m_Date)
udtSystemTime.wMinute = Minute(m_Date)
udtSystemTime.wSecond = Second(m_Date)
udtSystemTime.wMilliseconds = 0

' convert system time to local time
SystemTimeToFileTime udtSystemTime, udtLocalTime
' convert local time to GMT
LocalFileTimeToFileTime udtLocalTime, udtFileTime
' open the file to get the filehandle
lngHandle = CreateFile(m_Path, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
' change date/time property of the file
SetFileTime lngHandle, udtFileTime, udtFileTime, udtFileTime
' close the handle
CloseHandle lngHandle
MsgBox "The date of the file has been changed to " + Str$(m_Date), vbInformation + vbOKOnly, App.Title
End Sub

热心网友 时间:2023-08-20 16:40

vb修改系统时间可是再简单不过了
一个代码就可以实现了
date
=
datevalue("你要修改的日期")
注意这个输入的日期是有格式的
比如说你想修改到8888年8月8日
就是date
=
datevalue("8888-8-8")
千万不能写date
=
datevalue("8888年8月8日")
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
上午去烧香,晚上梦见僵尸要吃我 ...电梯顶层的上方看到死人半个身子 我我掉头走后 被吓醒了 郁_百度知... 我两次梦见去逛商场然后电梯(上升的,带扶手的)塌了,丧尸出来,我和一群... 梦见在丧尸要咬我然后被我一脚踢进电梯它里半个身体出来了还想咬,然后... 香港hpv九价预约官网网址 电脑所有的电线有哪些电脑有哪些连接线 电脑电源那么多线起什么作用电脑电源连接线有多少个基本的都有什么作用... 显示器要接几根线 ...连接线是9芯的,谁知道是哪几条有用,哪几条没有用,各是什么颜色... mbr平板膜可以倒着放么 c#设置时间 C# 更改系统时间 c++语言 获取系统时间 C++怎么显示系统时间! 如何获取当前系统时间 怎样在win7系统下用VC++6.0修改系统时间 如何通过C++修改系统时间? 如何通过C#修改计算机系统时间 c语言中取系统时间 getlocaltime和getsystemtime的区别 请问怎样把time_t类型转换成SYSTEMTIME类型? 在C#中为什么SystemTime会出错 android有个获取时间的函数:systemTime(SYSTEM_TIME_MONOTONIC);我想知道SYSTEM_TIME_MONOTONIC什么意思 c++中的 SYSTEMTIME 怎么用,有什么意思。 开机出现systemtime system time 是什么意思 谁知道三星s10这个怎么关闭啊??急急急 三星s10+怎么关闭OMADM? 三星s8状态栏上的HD是什么?怎么取消? 求暗黑2所有符文合成 正新鸡排怎么腌制? VC++6.0,怎样用语句来修改系统时间. 怎样腌制鸡排比较嫩? C++怎么设置时间? 如何腌制鸡排吃起来口感嫩、滑嫩滑 鸡排怎么做做出来才会软软的? 如何把腌制鸡排做得吃起来口感嫩滑? 正新鸡排怎么腌制 鸡排怎么腌制?有什么特别要注意的地方吗? 鸡排怎么腌制鲜嫩多汁 鸡胸做鸡排怎么腌制 炸鸡排怎么腌制? 苹果watch插上电源无法更新安装 怎么让他人的QQ号存在被盗风险 怎么把QQ号变成有被盗风险? 我的qq存在被盗怎么办? 怎么QQ天天被盗啊? 我qq存在被盗风险,可是怎么做都弄不回来,怎么办才可以弄回来 我的QQ被盗了怎么把那 qq存在被盗风险怎么办