Как пройти каталог в eiffel? - PullRequest
2 голосов
/ 05 августа 2010

Простой

Как получить список файлов, находящихся в каталоге, используя eiffel?

Ответы [ 2 ]

3 голосов
/ 19 сентября 2010

Например:


class CARPETAS

creation
    make

feature {NONE}

    make is
      local
          directory: DIRECTORY
          path: STRING
      do
          path := "." -- Current directory
          !!directory.scan_with(path)
          list_directory(directory)
      end

    list_directory(directory: DIRECTORY) is
      local
          i: INTEGER
      do
          std_output.put_string("Content of " + directory.path + "%N")
          from
              i := directory.lower
          until
              i > directory.upper
          loop
              std_output.put_string("%T" + directory.name(i) + "%N")
              i := i + 1
          end
      end
end
2 голосов
/ 09 января 2014

с последней версией Eiffel, я бы рекомендовал использовать DIRECTORY.entries

local
    p: PATH 
do
    across dir.entries as ic loop
        p := ic.item.path
            -- then use interface of PATH, such as PATH.name 
    end
end

обратите внимание, что библиотека base_extension также предоставляет DIRECTORY_VISITOR, что полезно для рекурсивной итерации по каталогам

...