以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  [求助]如何自动生成不存在的文件夹?  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=101274)

--  作者:du_zb
--  发布时间:2016/7/14 16:52:44
--  [求助]如何自动生成不存在的文件夹?
刚才试了一下,如果WritePrivateProfileString里面的路径参数用到了不存在的文件夹,似乎是不会自动生成文件夹的,从而导致写入文件失败。我的问题是,如果想让程序生成一个文件夹并对其命名,应该用什么函数呢?
--  作者:du_zb
--  发布时间:2016/7/14 16:57:37
--  
需要用VBA里面的函数
--  作者:du_zb
--  发布时间:2016/7/14 20:56:42
--  
求回复啊
--  作者:du_zb
--  发布时间:2016/7/15 9:18:18
--  
有没有这样的函数?
--  作者:admin
--  发布时间:2016/7/15 12:34:59
--  

网上一搜一大把,摘抄部分如下

 

(1)创建文件夹

  1. Dim fso, f
  2. \'如果指定的文件夹已经存在,则会出现错误。
  3. Set fso = CreateObject("Scripting.FileSystemObject")
  4. Set f = fso.CreateFolder("c:\\New Folder")
复制代码

(2)删除文件夹

  1. Dim fso,filespec
  2. filespec="D:\\电影" \'要删除的文件夹路径
  3. Set fso = CreateObject("Scripting.FileSystemObject")
  4. fso.DeleteFolder(filespec)
  5. \'若删除只读文件夹则将上一行改为fso.DeleteFolder(filespec,true)
复制代码

(3)判断文件夹是否存在

  1. Dim fso,msg,tt
  2. Set fso = CreateObject("Scripting.FileSystemObject")
  3. fldr="C:\\Documents and Settings" \'文件夹路径和名字
  4. tt = fso.FolderExists(fldr) \'存在返回true;不存在返回false
  5. If tt=true Then
  6. msg = fldr & " 存在。"
  7. Else
  8. msg = fldr & " 不存在。"
  9. End If
  10. Msgbox msg
复制代码


(4)获取指定目录下所有文件的文件名(不包含文件夹名)

  1. Dim a
  2. a="D:\\文件夹1" \'目标文件夹完整路径
  3. Msgbox ShowFolderList(a)
  4. Function ShowFolderList(folderspec)
  5. Dim fso, f, f1, fc, s \'定义变量
  6. Set fso = CreateObject("Scripting.FileSystemObject") \'创建对象
  7. Set f = fso.GetFolder(folderspec) \'得到文件夹下folder对象
  8. Set fc = f.Files
  9. For Each f1 in fc \'查找所有符合条件的文件名
  10. s = s & f1.name
  11. s = s & vbcrlf \'得到结果并换行
  12. Next
  13. ShowFolderList = s
  14. End Function
复制代码


(5)分离路径中的文件名(不带扩展名)

  1. Msgbox GetTheBase("C:\\tt.txt") \'GetTheBase返回值tt
  2. Function GetTheBase(filespec)
  3. Dim fso
  4. Set fso = CreateObject("Scripting.FileSystemObject")
  5. GetTheBase = fso.GetBaseName(filespec)
  6. End Function

--  作者:du_zb
--  发布时间:2016/7/15 13:59:48
--  
谢谢了!
网上搜到的用vba创建文件夹的方法是使用MkDir函数,金字塔里面好像没有这个函数