1
A
回答
-2
为什么使用命令行而不是代码重命名文件?除非你有充分的理由使用cmd,否则我会推荐使用Windows API,更可靠。这是一个使用SHFileOperation重命名文件的示例。把它放到任何模块或类中。
Option Explicit
Private Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As Long ' only used with FOF_SIMPLEPROGRESS; sets dialog title
End Type
' For info, see: http://msdn.microsoft.com/en-us/library/bb759795%28v=vs.85%29.aspx
Private Const FO_COPY As Long = &H2
Private Const FO_DELETE As Long = &H3
Private Const FO_MOVE As Long = &H1
Private Const FO_RENAME As Long = &H4
Private Const FOF_ALLOWUNDO As Long = &H40
Private Const FOF_CONFIRMMOUSE As Long = &H2
Private Const FOF_FILESONLY As Long = &H80
Private Const FOF_MULTIDESTFILES As Long = &H1
Private Const FOF_NO_CONNECTED_ELEMENTS As Long = &H2000
Private Const FOF_NOCONFIRMATION As Long = &H10
Private Const FOF_NOCONFIRMMKDIR As Long = &H200
Private Const FOF_NOCOPYSECURITYATTRIBS As Long = &H800
Private Const FOF_NOERRORUI As Long = &H400
Private Const FOF_NORECURSION As Long = &H1000
Private Const FOF_RENAMEONCOLLISION As Long = &H8
Private Const FOF_SILENT As Long = &H4
Private Const FOF_SIMPLEPROGRESS As Long = &H100
Private Const FOF_WANTMAPPINGHANDLE As Long = &H20
Private Const FOF_WANTNUKEWARNING As Long = &H4000
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Public Function FileRename(OldFileNameAndPath As String, NewFileNameAndPath As String) As Boolean
Dim oP As SHFILEOPSTRUCT, lRet As Long
On Error GoTo Err
' Prepare FILEOP struct
With oP
.wFunc = FO_RENAME ' Set function
.pTo = NewFileNameAndPath ' Set new path
.pFrom = OldFileNameAndPath ' Set current path
.fFlags = FOF_SILENT + FOF_SIMPLEPROGRESS ' Set your flags; FOF_SILENT + FOF_SIMPLEPROGRESS will silently rename a file
End With
' Perform operation
lRet = SHFileOperation(oP)
If lRet = 0 Then
FileRename = True
Else
FileRename = False
End If
Exit Function
Err:
' TODO: Log Error
End Function
7
您需要一个/ C或/ K才能真正正常工作。见Cmd /?了解更多信息。
Shell函数也与命令行提示符不同。它是VB和Windows旧版本的补充,并且是WinExec()API的封装。
要重命名VB6一个文件,使用名称声明:
Name "D:\before.txt" As "after.txt"
相关问题
- 1. 使用cmd ren命令重命名文件
- 2. 用于重命名多个文件的cmd命令
- 3. 重命名文件使用MATLAB命令
- 4. CMD/DOS /批处理命令重命名文件的管理员
- 5. 使用cmd重命名文件夹中的多个文件
- 6. 在cmd中重命名多个文件
- 7. 如何使用sftp get命令重命名文件
- 8. 如何在子文件夹中批量重命名文件 - 使用CMD命令提示符
- 9. Windows:重命名cmd内的文件
- 10. CMD命令 - 用户名
- 11. 重命名文件的Mac命令行
- 12. 如何在C++中使用CMD命令?
- 13. 如何在python中使用cmd命令
- 14. 如何使用命令:cmd批处理命令<文本文件?
- 15. 如何使用命令提示符或VB6或VB.NET将空白名称重命名文件夹
- 16. 如何使用命令提示符重命名名称列表的文件?
- 17. 使用单个命令在FTP中重命名文件
- 18. 使用命令提示符在C中重命名SRT文件
- 19. 在sql server中使用bcp命令重命名文件
- 20. PowerShell命令批量重命名文件
- 21. Windows重命名子文件夹命令
- 22. 如何通过Ms-dos命令重命名多个文件名
- 23. 使用通配符在cmd中重命名文件
- 24. 如何以管理员身份在Vb6中运行CMD命令
- 25. 重命名的目标文件,而使用zip命令
- 26. 重命名文件使用的MS-DOS命令RENAME
- 27. 如何用CMD Win7重命名一组文件?
- 28. 如何在CMD中按日期批量重命名文件?
- 29. 如何使用java重命名文件
- 30. 如何使用Python重命名文件
你得到什么错误? – 2011-02-01 03:32:02
没有错误。但它只显示我的cmd窗口,它不重命名文件。为什么? – faressoft 2011-02-01 04:04:53