如何递归删除空文件夹?
“空”被认为是如果该目录没有目录的真实,除了无用的自动生成的文件(不存在的文件Thumbs.db,.DS_Store等等)
如何递归删除空文件夹?
“空”被认为是如果该目录没有目录的真实,除了无用的自动生成的文件(不存在的文件Thumbs.db,.DS_Store等等)
Answers:
这是一个命令行one-liner,它将删除文件夹中的每个实际空(即零文件)目录:
for /f "delims=" %i in ('dir /ad /s /b') do @rd "%i"
基本上,这将获得从当前开始的所有目录的递归列表,然后尝试删除每个目录。rd默认情况下,该命令不会删除非空目录,因此您的文件应该是安全的。
试试这个:删除空目录 - CNET Download.com
空目录文件夹很烦人,但通常不是引起极大关注的原因。但是,随着时间的推移,它们会逐渐增加,并且删除空目录是一种智能且快速的解决方案。这个小程序用一个大致空白的窗格和一个图标键来迎接你,以了解你的结果。顶部有一个对话框,用于指定要搜索的特定文件夹或驱动器,但默认情况下会检查您的C驱动器。
这是我删除一个空目录:
C:\>md f
C:\>rmdir f
C:\>
在那里,我创建了一个,然后将其删除。如果有东西,那么它就不是空的。
你可以使用,rmdir /s如果有的话:
C:\>rmdir f
The directory is not empty.
C:\>rmdir /s f
f, Are you sure (Y/N)? y
C:\>
如果没有命令提示符,您可以完成所有操作。
递归是编程中的一个概念。我不认为你的意思。无论是否使用递归实现某些东西,都与你无关,因为毫无疑问你不打算限制自己......而且你不仅仅是在理智上对实现感到好奇。
如果您在删除目录时遇到问题,那么请考虑一下,当您尝试删除难以删除的目录时,会出现什么错误。您可以随时启动Live CD并将其删除。
使用“ 开始/运行”命令提示符(或组合WindowsR)。写入cmd以启动控制台,然后通过输入驱动器号导航到目录所在的驱动器(例如,如果它们在D:\您放置d:)。
命令行的路径将更改为所需的路径。然后使用该命令cd前往空目录父文件夹(cd D:\ParentDirectory\)。您可以使用Tabfor Windows来放置整个路径。
一旦到达父目录使用
del /F EmptyDirectory1
此方法是最好的方法,也将删除Windows资源管理器无法删除的文件夹或文件。
for /f "delims=" %i in ('dir /ad /s /b') do @rd "%i"
- bobbymcr
@bobbymcr的答案有效,但是需要运行(n-1)次最大目录深度才能确定没有空目录。这是因为for将按rd降序排序的feed 目录dir列出它们,尝试删除父目录,然后再解除其子目录。
因为rd只会删除已经为空sort的子目录,所以将在一次通过中从树中删除空巢。
创建一个[meow].bat文件,然后从要修剪的目录中运行它。第一个并发器是备用的临时文件名,如果需要可以使用。
:: Asserts the default tempfile name if none is specified.
IF "%1"=="" (
set __tempfile=meow.tmp
) ELSE (
set __tempfile=%1
)
echo %__tempfile%
:: Checks to see that it won't destroy an existing file
IF NOT EXIST %__tempfile% (
:: Gets list of directories in descending depth.
dir /ad /b /s > %__tempfile%
:: Removes empty directories specified in the list sorted in reverse order
for /f "delims=" %%i in ('sort /R %__tempfile%') do @rd "%%i"
:: Deletes tempfile
del %__tempfile%
) ELSE (
:: if the tempfile already exists.
@ECHO Tempfile already exists, please delete %__tempfile% and try again.
)