删除r中的空文件夹

删除r中的空文件夹,r,unzip,R,Unzip,我有一个压缩文件列表,其中包含一个目录中的文本文件,该目录之间包含空文件夹。我想解压文件,解压后要删除空文件夹(如果存在)。在R中执行此操作需要帮助。您可以使用列表.files(include.dirs=TRUE)获取文件和目录列表,然后使用文件.info检查这是否是一个目录。由于file.info作为目录时,其大小显示为0,因此需要列出目录中的所有文件,并获取大小以检查其是否为空。然后,如果目录大小为0,则可以使用取消链接: lapply(list.files(include.dirs=TRU

我有一个压缩文件列表,其中包含一个目录中的文本文件,该目录之间包含空文件夹。我想解压文件,解压后要删除空文件夹(如果存在)。在R中执行此操作需要帮助。

您可以使用
列表.files(include.dirs=TRUE)
获取文件和目录列表,然后使用
文件.info
检查这是否是一个目录。由于
file.info
作为目录时,其大小显示为0,因此需要列出目录中的所有文件,并获取大小以检查其是否为空。然后,如果目录大小为0,则可以使用
取消链接

lapply(list.files(include.dirs=TRUE, full.names=TRUE), function(x) {
    fi <- file.info(x)
    if (fi$isdir) {
        f <- list.files(x, all.files=TRUE, recursive=TRUE, full.names=TRUE)
        sz <- sum(file.info(f)$size)

        #as precaution, print to make sure before using unlink(x, TRUE)
        if (sz==0L) print(x)   
    }
})
lappy(list.files(include.dirs=TRUE,full.names=TRUE),函数(x){

fi您可以使用
list.files(include.dirs=TRUE)
要获取文件和目录的列表,然后使用
file.info
检查这是否是一个目录。由于
file.info
是一个目录时,其大小显示为0,因此需要列出目录中的所有文件,并获取大小以检查其是否为空。然后,如果大小为0,则可以使用
取消链接删除目录

lapply(list.files(include.dirs=TRUE, full.names=TRUE), function(x) {
    fi <- file.info(x)
    if (fi$isdir) {
        f <- list.files(x, all.files=TRUE, recursive=TRUE, full.names=TRUE)
        sz <- sum(file.info(f)$size)

        #as precaution, print to make sure before using unlink(x, TRUE)
        if (sz==0L) print(x)   
    }
})
lappy(list.files(include.dirs=TRUE,full.names=TRUE),函数(x){

fi您可以使用函数
icesTAF::remdir(path,recursive=T)
删除空文件夹

for i in 1:[your folders count]{
 icesTAF::rmdir(list.files([your path containing folders], full.names = T)[i], recursive = T)
}

您可以使用函数
icesTAF::remdir(path,recursive=T)
删除空文件夹

for i in 1:[your folders count]{
 icesTAF::rmdir(list.files([your path containing folders], full.names = T)[i], recursive = T)
}

最好依靠文件的数量,而不是文件大小的总和。
file.create('foo.txt')
例如,创建一个大小为0的文件。如果目标是删除其中没有文件的目录,那么为什么不这样做呢。只需替换
sz最好依靠文件的数量,而不是文件大小的总和。
file.create('foo.txt')
例如,创建一个大小为0的文件。如果目标是删除其中没有文件的目录,那么为什么不这样做呢。只需替换
sz即可