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

Vba 可以用文件重命名文件夹吗?,vba,outlook,Vba,Outlook,可以用文件重命名文件夹吗? 下面的代码创建一个文件夹并将附件保存在其中。之后,我需要重命名这个文件夹的日期是在第二行的文件保存。 我可以检索日期,但代码无法重命名文件夹 Option Explicit Public Sub SalvarAnexo(Item) Dim Atmt As Attachment Dim FileName As String Dim objFSO As Object Dim objFile As Object Dim strDa

可以用文件重命名文件夹吗? 下面的代码创建一个文件夹并将附件保存在其中。之后,我需要重命名这个文件夹的日期是在第二行的文件保存。 我可以检索日期,但代码无法重命名文件夹

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
oldname文件夹中的文件应全部关闭

根据下面的Tomalak编辑,谢谢!:

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

    Set fdr = objFSO.GetFolder("oldname")
    fdr.Name = "newname"
oldname文件夹中的文件应全部关闭

旧名是Fullsplec

newname就是这个名字

oldname文件夹中的文件应全部关闭

根据下面的Tomalak编辑,谢谢!:

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

    Set fdr = objFSO.GetFolder("oldname")
    fdr.Name = "newname"
oldname文件夹中的文件应全部关闭

旧名是Fullsplec


newname就是名称。

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


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

您可以直接执行此操作,而无需使用FileScriptingObject的开销


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

首先,您需要知道目标文件夹c:\已经存在。第二个有效的方法是使用空名称重命名文件夹。试着用手在代码中做你刚刚尝试做的事情,你会发现问题所在。您真正想做的是将临时文件夹的内容移到最终位置。请先关闭该文件,然后重命名该文件夹。首先,您需要知道目标文件夹c:\已经存在。第二个有效的方法是使用空名称重命名文件夹。试着用手在代码中做你刚刚尝试做的事情,你会发现问题所在。您真正想做的是将临时文件夹的内容移动到最终位置。首先关闭文件,然后重命名文件夹。我想您也可以简单地设置。我不必这样做,因为文档中说我可以;我使用的是:Set fdr=objFSO.GetFoldercaminhoTemp fdr.Name=strData,但返回的错误为access@caezar如果fdr对象正常,并且strData未违反命名规则,则您可能无权在要重命名的文件夹所在的位置重命名该文件夹。或者是完全不同的东西。。。有一点是肯定的:上面的代码在我的机器上对我有效。我想你也可以简单地设置。我不必这样做,因为文档上说我可以;我使用的是:Set fdr=objFSO.GetFoldercaminhoTemp fdr.Name=strData,但返回的错误为access@caezar如果fdr对象正常,并且strData未违反命名规则,则您可能无权在要重命名的文件夹所在的位置重命名该文件夹。或者是完全不同的东西。。。有一点是肯定的:上面的代码在我的机器上对我有效。如果OP不一定要使用FSO进行重命名,这是最简单的解决方案。如果OP不一定要使用FSO进行重命名,这是最简单的解决方案。
Name "C:\oldname" As "C:\newname"