21 / 21 / 1
Регистрация: 24.07.2013
Сообщений: 121
|
||||||
1 | ||||||
Clojure Задать директорию и вывести список файлов и их размеры04.04.2014, 23:21. Показов 2887. Ответов 29
Метки нет Все метки)
(
Здравствуйте, дорогие форумчане и гости!
Собственно, задачу Я описал в заголовке. Интересует: какая функция Lisp возвращает список файлов в заданной директории и чтобы с каждого из них(файлов) можно было вытащить информацию о его размере на диске? Как найти размер файла Я примерно знаю:
0
|
04.04.2014, 23:21 | |
Ответы с готовыми решениями:
29
Размеры файлов в список Нужно вывести на экран информацию про системную директорию и директорию windows Вывести имена и размеры всех файлов в заданном каталоге и упорядочить их
|
4527 / 3521 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
06.04.2014, 16:50 | 21 |
Может и так, может и нет. А что бы вы предложили вместо?
Стандарт в высокой степени платформонезависим, особенности Unix или Windows в принципе не могли в него включаться. Напомню, что при проектировании принципов работы CL с файловой системой для достижения кроссплатформенности требовались весьма значительные усилия. Чем интересен стандарт CL - что его разрабатывал не один умный человек, а несколько умных людей, а потом коллегиально принимали много умных людей. Можно ожидать, что его решения близки к оптимальным. Вообще, поскольку ФС (и ОС) в принципе трансцендентна по отношению к лиспу, имхо можно было бы отдать взаимодействие с ней на откуп реализациям, такой "минималистичный" вариант. Разработчики стандарта, как обычно, поступили противоположным образом: постарались охватить как можно более широкий класс систем. С другой стороны, реализации действительно могут дать другие пути решения задачи (размер файла): я уже упоминал обращение к ОС, а transformator.t напомнил про использование FFI.
0
|
Модератор
![]() ![]() |
|
06.04.2014, 17:25 | 22 |
- выше я уже написал. Повторю: в данном конкретном случае (для win/nix) в реализации открытия потока, open выдавать при первой операции ввода/вывода, а длину брать из элемента оглавления. Это вполне примиряет стандарт с обычной практикой (считать байты не нужно). Ну, а в тех ОС, где длина файла не поддерживается (напр. IBM-370), просто возвращать 0 (там длина файла не нужна).
0
|
defun
603 / 617 / 44
Регистрация: 30.04.2011
Сообщений: 702
|
|
06.04.2014, 17:33 | 23 |
0
|
Модератор
![]() ![]() |
|
06.04.2014, 18:04 | 24 |
- директории, где расположен файл. Пример чего показать? Я не обращался к оглавлению директории. Я думаю, что обычная команда dir, без проблем показывающая любое оглавление с длинами файлов, навряд ли открывает каждый файл (хотя могу и ошибаться). Откуда же dir так быстро берет длины файлов? Из оглавления, больше не откуда.
0
|
4527 / 3521 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
06.04.2014, 18:49 | 25 |
А, ну реализации под конкретные ОС - это понятно. Просто в стандарт ничего такого не засунешь.
0
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
||||||
07.04.2014, 03:51 | 26 | |||||
Вы говорите о метаданных файлов.
> Можно иногда и шлангом прикинуться. ![]() >
0
|
defun
603 / 617 / 44
Регистрация: 30.04.2011
Сообщений: 702
|
|
07.04.2014, 13:34 | 28 |
castorsky, чего?
0
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
|
07.04.2014, 14:57 | 29 |
Называя вещи не совими именами Вы даете повод для искажения смысла Ваших слов. Например, так
так так так так Кстати спецификацию фс в данном случае курить не нужно. Достаточно дёрнуть stat (это актуально nix, win, mac), учитывая особенности конкретной платформы. Это так же является ответом на Ваш вопрос А вот когда мы хотим написать свою stat(conat char *, struct stat * buf), тогда конечно придется покурить спеки фс. Это не утомительно + еще дополнительный скил в навык. > transformator.t, если для Вас эти слова обидны, то прошу меня извинить. Поверьте, я не желал Вас оскорбить или высмеять.
3
|
Модератор
![]() ![]() |
|
07.04.2014, 15:22 | 30 |
castorsky, согласен. Убедительно.
![]()
0
|
07.04.2014, 15:22 | |
07.04.2014, 15:22 | |
Помогаю со студенческими работами здесь
30
FTP: получение списка файлов из потока. Как вывести список файлов из директории?
Как правильно задать директорию?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |