1

ASP Classic でSetFileTimeなどを呼び出して、指定した時刻の日付と時刻を手動で変更したいと思います。私の知る限り、ASP ファイル オブジェクトは、ファイルの作成時刻と変更時刻を取得する方法を提供しますが、実際にそれらを設定する方法は提供しません。

どうすればこれを達成できますか?

4

2 に答える 2

0

私は比較的早く答えを見つけました:

Sub ModifyLastAccessedDate(emlFilePath, newDate)
    Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    Set file = objFSO.GetFile(emlFilePath)
    Set app = Server.CreateObject("Shell.Application") 
    Set folder = app.NameSpace(file.ParentFolder & "\") 
    Set fileModify = folder.ParseName(file.Name) 

    fileModify.ModifyDate = NewDate 

    Set objFSO = Nothing
    Set file = Nothing 
    Set folder = Nothing 
    Set app = Nothing 
    Set fileModify = Nothing
End Sub

そして、ルーチンを呼び出すだけです

Call ModifyLastAccessedDate("C:\Folder\SomeFile.Txt","2013-03-05")

于 2013-03-04T08:19:49.150 に答える
0

以下は JScript と VB の例で、後世のためにMicrosoftから直接取得したものです (日付と時刻の文字列を設定する方法の別の例として)。

<script language="JScript">
    function fnModifyDateGetSetJ()
    {
        var objShell = new ActiveXObject("shell.application");
        var objFolder2;
        var ssfWINDOWS = 36;

        objFolder2 = objShell.NameSpace(ssfWINDOWS);
        if (objFolder2 != null)
        {
            var objFolderItem;

            objFolderItem = objFolder2.ParseName("NOTEPAD.EXE");
            if (objFolderItem != null)
            {
                var szReturn;

                szReturn = objFolderItem.ModifyDate;
                objFolderItem.ModifyDate = "01/01/1900 6:05:00 PM";
            }
        }
    }
</script>

VB:

Private Sub fnModifyDateGetSetVB()
    Dim objShell   As Shell
    Dim objFolder2 As Folder2
    Dim ssfWINDOWS As Long

    ssfWINDOWS = 36
    Set objShell = New Shell
    Set objFolder2 = objShell.NameSpace(ssfWINDOWS)
        If (Not objFolder2 Is Nothing) Then
            Dim objFolderItem As FolderItem

            Set objFolderItem = objFolder2.ParseName("NOTEPAD.EXE")
                If (Not objFolderItem Is Nothing) Then
                    Dim szReturn As String

                    szReturn = objFolderItem.ModifyDate
                    objFolderItem.ModifyDate = "01/01/1900 6:05:00 PM"
                Else
                    'FolderItem object returned nothing.
                End If
            Set objFolderItem = Nothing
        Else
            'Folder object returned nothing.
        End If
    Set objFolder2 = Nothing
    Set objShell = Nothing
End Sub
于 2016-06-29T08:03:30.573 に答える