可以用文件重命名文件夹吗?

时间:2015-01-05 20:40:40

标签: vba outlook-vba

是否可以使用文件重命名文件夹? 下面的代码创建一个文件夹并将附件保存在那里。我需要重命名此文件夹时,日期位于保存的第二行文件中。 我可以检索日期,但代码无法重命名该文件夹。

Option Explicit

Public Sub SalvarAnexo(Item)

    Dim Atmt As Attachment
    Dim FileName As String
    Dim objFSO As Object
    Dim objFile As Object
    Dim strData As String
    Dim caminhoTemp As String
    Dim caminhoFinal As String
    Dim caminhoFtp As String

    'MsgBox "Mensagem Recebida de " & Item.Sender & "!"
    caminhoTemp = "C:\temp"
    caminhoFinal = "C:\"


    For Each Atmt In Item.Attachments
        If Right$(Atmt.FileName, 3) = "TXT" Then
            Set objFSO = CreateObject("Scripting.FileSystemObject")
            FileName = caminhoTemp & "\" & Atmt.FileName
            Atmt.SaveAsFile FileName
            Set objFile = objFSO.OpenTextFile(FileName, 1)
            strData = objFile.ReadLine
            strData = objFile.ReadLine
            strData = Left$(strData, 10)
            strData = Replace(strData, "-", "")

            caminhoFinal = caminhoFinal & strData

            Name caminhoTemp As caminhoFinal
            objFile.Close


            MsgBox "Your date is " & strData
        End If
    Next Atmt

End Sub

2 个答案:

答案 0 :(得分:3)

objFSO.MoveFolder("c:\oldname", "c:\newname")

“oldname”文件夹中的文件应全部关闭。

下面的每个Tomalak

编辑(谢谢!):

您可以获取文件夹对象并重命名:

    Set fdr = objFSO.GetFolder("oldname")
    fdr.Name = "newname"

“oldname”文件夹中的文件应全部关闭。

“oldname”是Fullsplec。

“newname”就是这个名字。

答案 1 :(得分:2)

您可以直接执行此操作,而无需FileScriptingObject

的开销
Name "C:\oldname" As "C:\newname"

在您的特定情况下,由于已经调用FileScriptingObject来打开文本文件,因此没有大量保存。