【问题标题】:How to change modified time for folder?如何更改文件夹的修改时间?
【发布时间】:2014-05-08 12:11:36
【问题描述】:

我将包含多个文件和文件夹的 zip 文件作为输入,我正在提取它,然后我想将 zip 中每个内容的最后修改时间更改为用户设置的某个新日期和时间。

我正在使用os.utime() 更改日期和时间,但更改只会反映到文件中,而不会反映到 zip 中的文件夹。

timeInStr = raw_input("Enter the new time =format: dd-mm-yyyy HH:MM:SS -")
timeInDt=datetime.datetime.strptime(timeInStr, '%d-%m-%Y %H:%M:%S')
timeInTS=mktime(timeInDt.timetuple())
epochTime=(datetime.datetime(timeInDt.year, timeInDt.month, timeInDt.day, timeInDt.hour, timeInDt.minute, timeInDt.second)-datetime.datetime(1970,1,1)).total_seconds()
z=zp.ZipFile(inputZipFile,"a",zp.ZIP_DEFLATED)
for files in z.infolist():
    z.extract(files, srcFolderName)
    fileName=files.filename  
    new= fileName.replace('/',os.path.sep)
    correctName= srcFolderName+os.path.sep+new
    print correctName
    if(correctName.endswith(os.path.sep)):
        correc=correctName[:-1]     
        print correc
        os.utime(correc, (timeInTS, timeInTS))
    else:
        os.utime(correctName, (timeInTS, timeInTS))

我使用 Python 2.7 作为平台

【问题讨论】:

  • 放置一些您尝试过的代码以及您遇到问题的地方。

标签: python python-2.7


【解决方案1】:

目录权限的基础是 SO 上的this question。该目录仅在目录本身更改时更改其时间戳,例如:当您在其中创建新文件时。因此,要更新文件夹的时间戳,您可以创建一个临时文件,然后将其删除。应该有更好的方法,但在你找到它之前,你可以使用它来管理。

【讨论】:

    【解决方案2】:

    我遇到了类似的问题。 Here 是我用来解决问题的代码。

    正如 user966588 所说,目录的时间戳会随着目录的变化而更新。

    在我链接的帖子中,我保留了任何目录元数据更新,直到我的目录完全填充后才能保留时间戳更改。

    【讨论】:

      猜你喜欢
      • 2015-04-04
      • 1970-01-01
      • 2011-01-15
      • 2022-07-02
      • 2014-03-11
      • 1970-01-01
      • 1970-01-01
      • 2017-03-30
      • 1970-01-01
      相关资源
      最近更新 更多