找回密码
 加入
搜索
查看: 2986|回复: 6

[系统综合] 【已解决】请问怎么返回一个文件夹中最新日期的文件的文件名?

  [复制链接]
发表于 2017-4-23 08:02:28 | 显示全部楼层 |阅读模式
本帖最后由 ac5474012 于 2017-4-24 15:52 编辑
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#PRE_Res_requestedExecutionLevel=None
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****


#include <FileConstants.au3>




Local $lujing1 = IniRead("config.ini", "config", "原路径", "NotFound");原位置
Local $lujing2 = IniRead("config.ini", "config", "目标路径", "NotFound");目标位置
Local $kuozhan= IniRead("config.ini", "config", "扩展名", "NotFound")

Local $hSearch = FileFindFirstFile($lujing1&""&$kuozhan)

; 检查搜索是否成功
If $hSearch = -1 Then
;~     MsgBox(4096, "错误", "没有文件/目录 匹配搜索")
    Exit
EndIf
$a = 0
While 1
    Local $sFile = FileFindNextFile($hSearch)
    If @error Then ExitLoop

;~     MsgBox(4096, "找到的文件:", $sFile)
                                Local $sFileModifiedTime = FileGetTime($lujing1 & '\' & $sFile, 1, 1)
                                If $a = 0 Then $a = $sFileModifiedTime
                If Int($sFileModifiedTime) > Int($a) Then
                        $a = $sFileModifiedTime
                        $ming = $sFile
                EndIf

WEnd
;~ MsgBox(0,",",$ming)
FileCopy($lujing1&""&$ming, $lujing2&""&$ming)

; 关闭搜索句柄
FileClose($hSearch)
config.ini 信息:
[config]
原路径=I:\服务
目标路径=I:\服务\www
扩展名=*.*
发表于 2017-4-23 11:15:28 | 显示全部楼层
新手觉得,先返回所有文件的日期,对比最新日期的文件,提取文件名。。看看楼下有没有更好的办法
发表于 2017-4-23 11:37:21 | 显示全部楼层
每份文件有三个日期,要说明哪个时间吧.
正确做法当然是:
获取所有文件,然后循环比较时间,只留最新的.
发表于 2017-4-23 14:23:16 | 显示全部楼层
回复 1# ac5474012

這句話怪怪的

请问怎么返回一个文件夹中最新日期的文件的文件名?

一個文件夾中..... 一個文件夾中 同樣的檔名 只會有一個 永遠是最新的一個...

最新日期的文件的文件名............最新的日期 指的是跟哪一天比呢??  如果是 自己跟自己比...那又違反了  在同個資料夾  同檔名只會有一個....
 楼主| 发表于 2017-4-23 14:34:29 | 显示全部楼层
回复 2# 229989799

返回所有文件的函数忘记了
发表于 2017-4-23 16:07:11 | 显示全部楼层
是否是下面这样
#include <FileConstants.au3>

Local $sDirPath = @ScriptDir & '\BackUp'
MsgBox(0, '', _FindFileLastModified($sDirPath))


Func _FindFileLastModified($sDirPath)
        Local $hSearch = FileFindFirstFile($sDirPath & '\*.*')
        If $hSearch == -1 Then
                MsgBox(0, '', StringFormat('文件夹%s不存在!', $sDirPath))
                Return SetError(1, 0, 0)
        EndIf

        Local $sFileName = '', $sFileLastModified = '', $sFileLastModifiedTime = ''

        While 1
                $sFileName = FileFindNextFile($hSearch)
                If @error Then ExitLoop
                Local $sFileModifiedTime = FileGetTime($sDirPath & '\' & $sFileName, $FT_MODIFIED, $FT_STRING)
                If Int($sFileModifiedTime) > Int($sFileLastModifiedTime) Then
                        $sFileLastModified = $sFileName
                        $sFileLastModifiedTime = $sFileModifiedTime
                EndIf
        WEnd
        FileClose($hSearch)
        Return $sFileLastModified
EndFunc   ;==>_FindFileLastModified

评分

参与人数 1金钱 +20 收起 理由
ac5474012 + 20 谢谢

查看全部评分

发表于 2017-4-24 09:00:04 | 显示全部楼层
dir  /od 参数 可以按时间排序
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 14:44 , Processed in 0.143801 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表