向各位大神求解,VB中创建文件夹时:路径/文件访问错误

飞仔FeiZai 2013-09-26 10:22:15

On Error GoTo ErrHandle
Dim FileName As String
FileName = App.Path & "\数据备份\"
If Dir(FileName) = "" Then
MkDir App.Path & "\数据备份\" <--为什么程序跑到这里就出错:路径/文件访问错误
End If
Exit Sub
ErrHandle:
MsgBox Error$, vbExclamation
对App.Path 有什么要求吗?能不能有中文字符?
...全文
740 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞仔FeiZai 2013-09-30
  • 打赏
  • 举报
回复
改成 MkDir (App.Path & "\数据备份\")就行了,这是什么原因?
舉杯邀明月 2013-09-30
  • 打赏
  • 举报
回复
并且,你在主贴中说“出错”那儿,我这儿运行没有错误。 如果没有那个 “数据备份”目录,能够成功在 App.path 下创建“数据备份”目录。 (只有 App.path 是处于根目录时,才是错误的)
舉杯邀明月 2013-09-30
  • 打赏
  • 举报
回复
在这儿,MkDir App.Path & "\数据备份\" 跟 MkDir (App.Path & "\数据备份\") 没有区别,好不!!!
熊孩子开学喽 2013-09-26
  • 打赏
  • 举报
回复
引用 楼主 yzh648542313 的回复:
On Error GoTo ErrHandle Dim FileName As String FileName = App.Path & "\数据备份\" If Dir(FileName) = "" Then MkDir App.Path & "\数据备份\" <--为什么程序跑到这里就出错:路径/文件访问错误 End If Exit Sub ErrHandle: MsgBox Error$, vbExclamation 对App.Path 有什么要求吗?能不能有中文字符?
改成 MkDir App.Path & "\数据备份"
贝隆 2013-09-26
  • 打赏
  • 举报
回复
推荐你采用FSO对象来创建和操作文件,比MKDir这样的DOS外部命令好用的多,参阅: FSO 对象模型编程 FSO 对象模型编程包括三项主要任务: 使用CreateObject 方法,或将一个变量声明为 FileSystemObject 对象类型来创建一个 FileSystemObject 对象。 对新创建的对象使用适当的方法。 访问该对象的属性。 FSO 对象模型包含在一个称为 Scripting 的类型库中,此类型库位于 Scrrun.Dll 文件中。如果还没有引用此文件,请从“属性”菜单的“引用”对话框选择“Microsoft Scripting Runtime”项。然后就可以使用“对象浏览器”来查看其对象、集合、属性、方法、事件以及它的常数。 创建 FileSystemObject 对象 第一步是创建一个 FileSystemObject 对象以便进行处理。可以通过如下两种方法完成: 将一个变量声明为 FileSystemObject 对象类型: Dim fso As New FileSystemObject 使用 CreateObject 方法来创建一个 FileSystemObject 对象: Set fso = CreateObject("Scripting.FileSystemObject") 在上面的语法中, Scripting 是类型库的名称,而 FileSystemObject 则是想要创建一个实例的对象的名称。 注意 第一种方法只在 Visual Basic 中有效,而第二种方法在 Visual Basic 或 VBScript 中都是可行的。 使用适当的方法 下一步就是使用该 FileSystemObject 对象的适当的方法。例如,如果想要创建一个新对象,既可以使用 CreateFolder 方法也可以使用 CreateTextFile 方法。(FSO 对象模型不支持创建或删除驱动器。) 如果想要删除对象,可以使用 FileSystemObject 对象的 DeleteFile 和 DeleteFolder 方法,或者 File 和 Folder 对象的 Delete 方法。 使用适当的方法,还可以复制、移动文件和文件夹。 请注意, FileSystemObject 对象模型中有一些功能是冗余的。例如,要复制一个文件,既可以使用 FileSystemObject 对象的 CopyFile 方法,也可以使用 File 对象的 Copy 方法。这两者的功能是完全相同的。两者同时存在以提供最大的编程灵活性。 访问已有的驱动器、文件和文件夹 要访问一个已有的驱动器、文件或文件夹,请使用 FileSystemObject 对象中相应的 "get" 方法: GetDrive GetFolder GetFile 例如: Dim fso As New FileSystemObject, fil As File Set fil = fso.GetFile("c:\test.txt") 但是,请注意,并不需要对新创建的对象使用"get" 方法,因为"create" 函数已经返回了一个句柄到新创建的对象。例如,如果使用 CreateFolder 方法创建了一个新的文件夹,就没有必要使用 GetFolder 方法来访问该对象的诸如名称、路径、大小等属性。只要给 CreateFolder 函数设置一个变量来获取新建文件夹的句柄,然后就可以访问其属性、方法和事件: Private Sub Create_Folder() Dim fso As New FileSystemObject, fldr As Folder Set fldr = fso.CreateFolder("C:\MyTest") MsgBox "Created folder: " & fldr.Name End Sub 访问对象的属性 一旦有了对象的句柄,就能够访问其属性。例如,假定您想要获得一个特定文件夹的名称。首先要创建该对象的一个实例,然后通过适当的方法(在本例中是 GetFolder 方法,因为该文件夹已经存在)得到其句柄: Set fldr = fso.GetFolder("c:\") 现在有了一个 Folder 对象的句柄,您可以查看其 Name 属性: Debug.Print "Folder name is: "; fldr.Name 如果想要找出一个文件的最新修改时间,可以使用如下的语法: Dim fso As New FileSystemObject, fil As File Set fil = fso.GetFile("c:\detlog.txt") ' 获得要查询的 File 对象。 Debug.Print "File last modified: "; fil.DateLastModified ' 显示信息。
zdingyun 2013-09-26
  • 打赏
  • 举报
回复
引用 2 楼 WallesCai 的回复:
[quote=引用 楼主 yzh648542313 的回复:] On Error GoTo ErrHandle Dim FileName As String FileName = App.Path & "\数据备份\" If Dir(FileName) = "" Then MkDir App.Path & "\数据备份\" <--为什么程序跑到这里就出错:路径/文件访问错误 End If Exit Sub ErrHandle: MsgBox Error$, vbExclamation 对App.Path 有什么要求吗?能不能有中文字符?
改成 MkDir App.Path & "\数据备份"[/quote] + 10086

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧