2015-03-11 6 views
1

Я знаю, что ожидание - это одежда tcl-in-sheep, но даже когда я говорю об этом, я начинаю пустым.Как проверить, пуст ли каталог?

Есть ли способ определить, является ли конкретный каталог пустым (или не пустым, я могу просто использовать отрицание)?

ответ

4

С glob, попробуйте найти шаблон * в нем.

set dir "/home/dinesh/stack" 
set file_list [glob -nocomplain "$dir/*"] 
if {[llength $file_list] != 0} { 
    puts "$dir is not empty" 
} else { 
    puts "$dir is empty" 
} 
+0

знать о скрытых файлах –

+0

Если я делаю if {$ file_list == 0}, это не запускается. В этом каталоге нет скрытых файлов. $ file_list, похоже, состоит из пустой строки, без пробелов. Nevermind, просто увидел редактирование. –

0

Использование:

[glob -nocomplain -dir $dir *] 

вместо

[glob -nocomplain "$dir/*"] 

Если не указать каталог, в некоторых случаях ваша команда потерпит неудачу (как мой Windows, 8.1 с Tcl8.6) , Указав каталог, команда отлично работает в Windows и Linux.

Смежные вопросы