首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用于创建目录和子目录的FileSystemObject.CreateFolder

用于创建目录和子目录的FileSystemObject.CreateFolder
EN

Stack Overflow用户
提问于 2015-06-24 18:04:31
回答 3查看 16.8K关注 0票数 9

我想用以下代码创建一个目录和子目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Public fso As Scripting.FileSystemObject
Set fso = New Scripting.FileSystemObject
fso.CreateFolder ("C:\Users\<my_username>\DataEntry\logs")

我正在尝试创建嵌套目录。在本例中,DataEntry目录将不存在,因此基本上我希望在C:\Users\<username>下创建两个目录:DataEntry\logs

如果我进入命令提示符,我可以使用mkdir创建目录,而不会出现任何问题。但是,我根本无法让VBA创建该文件夹,我得到了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Run-time error '76':

Path not found                        

我正在使用Excel VBA 2007/2010

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-24 18:27:30

需要创建每个文件夹一次一个。您可以使用下面这样的代码来完成此操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub tgr()

    Dim strFolderPath As String
    Dim strBuildPath As String
    Dim varFolder As Variant

    strFolderPath = "C:\Users\<my_username>\DataEntry\logs"

    If Right(strFolderPath, 1) = "\" Then strFolderPath = Left(strFolderPath, Len(strFolderPath) - 1)
    For Each varFolder In Split(strFolderPath, "\")
        If Len(strBuildPath) = 0 Then
            strBuildPath = varFolder & "\"
        Else
            strBuildPath = strBuildPath & varFolder & "\"
        End If
        If Len(Dir(strBuildPath, vbDirectory)) = 0 Then MkDir strBuildPath
    Next varFolder

    'The full folder path has been created regardless of nested subdirectories
    'Continue with your code here

End Sub
票数 7
EN

Stack Overflow用户

发布于 2018-06-12 13:10:12

泰格阿凡达的循环答案可能行得通,但读起来有点难。与自己对字符串进行微观管理不同,FileSystemObject提供了路径操作函数,而且递归比循环更容易阅读。

下面是我使用的函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Function CreateFolderRecursive(path As String) As Boolean
    Dim FSO As New FileSystemObject

    'If the path exists as a file, the function fails.
    If FSO.FileExists(path) Then
        CreateFolderRecursive = False
        Exit Function
    End If

    'If the path already exists as a folder, don't do anything and return success.
    If FSO.FolderExists(path) Then
        CreateFolderRecursive = True
        Exit Function
    End If

    'recursively create the parent folder, then if successful create the top folder.
    If CreateFolderRecursive(FSO.GetParentFolderName(path)) Then
        If FSO.CreateFolder(path) Is Nothing Then
            CreateFolderRecursive = False
        Else
            CreateFolderRecursive = True
        End If
    Else
        CreateFolderRecursive = False
    End If
End Function
票数 9
EN

Stack Overflow用户

发布于 2021-02-26 12:32:57

同意MarkD的建议,利用递归,这是我来这里寻找的代码。在提供的路径使用不存在的根文件夹的情况下,这将导致无限循环。添加到MarkD的解决方案中,以检查零长度路径。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Function CreateFolderRecursive(path As String) As Boolean
    Static FSO As FileSystemObject
 
    'Initialize FSO variable if not already setup
    If FSO Is Nothing Then Set lFSO = New FileSystemObject

    'Is the path paramater populated
    If Len(path) = 0 Then
      CreateFolderRecursive = False
      Exit Function
    End If

    'If the path exists as a file, the function fails.
    If FSO.FileExists(path) Then
        CreateFolderRecursive = False
        Exit Function
    End If
 
    'If the path already exists as a folder, don't do anything and return success.
    If FSO.FolderExists(path) Then
        CreateFolderRecursive = True
        Exit Function
    End If
 
    'recursively create the parent folder, then if successful create the top folder.
    If CreateFolderRecursive(FSO.GetParentFolderName(path)) Then
        If FSO.CreateFolder(path) Is Nothing Then
            CreateFolderRecursive = False
        Else
           CreateFolderRecursive = True
        End If
    Else
        CreateFolderRecursive = False
    End If
End Function
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31033820

复制
相关文章
【TKE】CFS 动态创建不同子目录的 PVC
目前使用 StorageClass 自动创建 CFS 类型 PVC 和 PV,每个 PV 都需要对应一个文件系统(CFS 实例),如果想要多个 PV(不同子路径) 使用同一个文件系统,就需要手动创建 PV 时指定 CFS 文件系统的具体的路径然后绑定 PVC 使用,这是一种办法,但是当需要的 PV 数量多了就会非常繁琐, 对于此使用场景我们可以使用社区的 nfs-client-provisioner 项目来实现动态创建 CFS 文件系统中的子路径,接下来我们来介绍下如何在 TKE 中使用nfs-client-provisioner。
Jokey
2021/06/25
1.6K0
WordPress 插件开发技巧:在上传目录下创建子目录
当你创建的 WordPress 插件需要自己的独立的上传目录的时候,可以在你的插件中添加如下代码,这样在插件激活的时候自动在 WordPress 上传目录(wp-content/uploads/)下创建自己独立的上传目录:
Denis
2023/04/15
3930
最简化修改Jupyter Notebook目录和子目录。
1、点击[命令行窗口] 2、按<Enter>键 3、按<Enter>键 4、按<Ctrl+F>键 5、点击[查找下一个] 6、点击[文本] 7、按<Ctrl+S>键 7、点击[命令行窗口] 8、按<Enter>键
裴来凡
2022/05/28
5110
最简化修改Jupyter Notebook目录和子目录。
linux中统计目录中的文件和子目录数
使用ls和grep命令配合 统计当前目录下文件的个数,不包括目录 > ls -l | grep "^-" | wc -l 统计文件夹下文件个数,包括子文件 > ls -lR | grep "^-" | wc -l 9188 统计文件夹下目录个数,包括子目录 > ls -lR | grep "^d" | wc -l 540 使用find和wc 统计当前目录下所有的普通文件,包含隐藏文件,不包含子目录下的文件 > find /etc -maxdepth 1 -type f | wc -l 统计目录中的
入门笔记
2022/06/02
3.2K0
Linux的重要子目录
在实际的生产环境中很有用(一般所有的内网机器hosts文件都保持一致),主要用于服务器迁移
用户1173509
2022/05/09
1.6K0
Linux的重要子目录
PHP统计目录总大小、文件和子目录个数
php function getDirectorySize($path) { $totalsize = 0; $totalcount = 0; $dircount = 0; if ($handle = opendir ($path)) { while (false !== ($file = readdir($handle))) { $nextpath = $path . '/' . $file; if ($file != '.' && $file
苦咖啡
2018/04/28
1.6K0
【转】配置子目录Web.config使其消除继承,用虚拟目录创建多个网站的方法
原文链接:http://www.wtnzone.com/post/2011/02/20/Set-Web-Config-to-Turn-Inheritance-Off.aspx
拓荒者IT
2019/09/25
1.7K0
如何使用PQ获取目录下所有文件夹的名(不含文件和子目录)
今天想把之前发布的Power BI的示例文件文件夹做一个表出来,只获取该目录下的所有文件夹的名,并不包含其中各种文件和子目录。
陈学谦
2020/05/08
7.2K0
如何使用PQ获取目录下所有文件夹的名(不含文件和子目录)
Yii2 FileHelper::findFiles() 返回在指定目录和子目录下找到的文件
Yii 提供许多类来简化常见编码,如对字条串或数组的操作, HTML 代码生成,等等。这些助手类被编写在命名空间 yii\helpers 下,并且 全是静态类 (就是说它们只包含静态属性和静态方法,而且不能实例化)。
熬夜的花斑狗
2022/01/10
8600
子目录下的html如何访问servlet?
4)子目录下的html如何访问servlet?web.xml和servlet都一样。只有html有变化。
马克java社区
2021/07/07
9140
使用python遍历子目录中的文件
这话真不是随便说的。在做的一个项目中,需要遍历子目录,并将文件保存到列表中,通过Python,几行代码就能实现。
fanzhh
2019/08/20
5.3K0
把某个git子目录迁移到新repo的根目录
对项目重构时有这样一个需求,1)要把代码库某个目录下的所有代码作为一个新代码库的根目录,2)并且之前所有的代码提交记录要一并迁移到这个新的git repo。
dhyuan
2023/08/28
5440
把某个git子目录迁移到新repo的根目录
linux系统重要子目录介绍
昨天介绍了系统根目录下的结构与一级目录的作用,今天来看一看系统一些重要的需要去了解的目录
民工哥
2020/09/16
1.3K0
linux系统重要子目录介绍
前端VUE,点击查看所有子目录
1.在body里面添加按钮 <a title="字典项" href="javascript:;" v-funcode="'acl_sDict/dirSDict'" @click="openNodeAndClick(data)" > 字典项</a > 2.在子页面methods里面为按钮添加方法:$e
2021/03/02
6820
子域名和子目录哪个更有利于SEO?
前几天看到Barry Schwartz的一篇帖子,记录了SEO人员和Google内部人员关于子域名和子目录哪个更有利于SEO的争论,挺有意思的,这里介绍一下。倒不是这个问题有多大SEO价值,而是争论双方角色变化与观点、说法变化挺有意思。
李洋博客
2021/06/15
1.1K0
Ubutu 更改 子文件或子目录的权限
Ubuntu中有两个修改命令可以用到,「change mode」&「change owner」
qubianzhong
2019/07/01
2.2K0
递归删除目录下的所有文件及子目录下所有文件
目录 1 代码 1 代码 /** * 递归删除目录下的所有文件及子目录下所有文件,以及 * @param dir 将要删除的文件目录 */ public static boolean deleteDir(File dir) { if (dir.isDirectory()) { String[] children = dir.list(); //递归删除目录中的子目录下 for (in
一写代码就开心
2022/08/16
1.7K0
PHP对目录下的子目录及文件进行压缩并解压
创建压缩类文件 zip.php <?php class Zip{ /** * Zip a folder (include itself). * Usage: * Zi
Action
2021/05/07
1.8K0
PHP对目录下的子目录及文件进行压缩并解压
Nginx泛解析到子目录,自动判断有无public目录
在配置本地 PHP 开发环境时,除非是在 Windows 下,否则我都是偏向于 Nginx + PHP-FPM, 即使 Mac 下已经有了自带的 Apache+PHP 环境,依然如此。一方面是因为 Mac 自带的 PHP 版本不够新(5.6.x),另一方面,Nginx + PHP-FPM 更接近于我的生产服务器环境,而且也方便用 Homebrew 来管理版本和扩展。 在 Mac 下开发 Laravel, 官方提供了 valet, 可以方便地把子目录映射为虚拟主机,但我在使用的时候,遇到一些问题: 真实错误信
小李刀刀
2018/03/02
2.8K0
利用htaccess把域名绑定到子目录
把签到助手的介绍页面建好之后,我把网页都放在了www.izgq.net的sign目录下,但是这样的网址 http://www.izgq.net/sign 看起来好难看,所以我便打算看看能不能把域名绑到子目录上。。
zgq354
2019/11/24
2.9K0

相似问题

创建目录和子目录- VBA

10

无法创建目录和子目录

12

用于目录和子目录级别的.htaccess

13

创建目录和子目录的Bash文件

218

创建目录+子目录

42
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文