Dir

Smile
Дата: 15.12.2002 16:31:31
Нужно получить в таблице список файлов в папке. Я сделал так

SET NOCOUNT ON
CREATE TABLE #MyDir(FName VARCHAR(255) NULL)
INSERT #MyDir EXEC master..xp_cmdshell 'dir c:\'
DELETE #MyDir WHERE FName LIKE '[^0-9]%' OR FName IS NULL OR SUBSTRING(FName,25,1)='<'
UPDATE #MyDir SET FName=SUBSTRING(FName,40,255)
SELECT FName FROM #MyDir
DROP TABLE #MyDir

Мне не нравится этот способ. Как получить то же самое по-другому??
Александр Степанов
Дата: 15.12.2002 17:07:58
Есть еще недокументированные процедуры, они обсуждались на этом форуме неоднократно (как и вопрос об использовании недокументированных фич вообще)

EXEC master..xp_dirtree 'C:\'

EXECUTE master..xp_subdirs 'C:\'
Fil
Дата: 15.12.2002 17:28:10
для этого нужно исползовать ключи команды DIR

Вывод списка файлов и подкаталогов из указанного каталога.

DIR [диск:][путь][имя_файла] [/A[[:]атрибуты]] [/C] [/D] [/L] [/N]
[/O[[:]порядок]] [/P] [/Q] [/S] [/T[[:]время]] [/W] [/X]

[диск:][путь][имя_файла]
Диск, каталог и/или файлы, которые следует включить в список.

/A Вывод файлов с указанными атрибутами.
атрибуты D Каталоги R Доступные только для чтения
H Скрытые файлы A Файлы для архивирования
S Системные файлы Префикс "-" имеет значение НЕ
/B Вывод только имен файлов.
/C Применение разделителя групп разрядов для вывода размеров файлов
(по умолчанию). Для отключения этого режима служит ключ /-C.
/D Вывод списка в несколько столбцов с сортировкой по столбцам.
/L Использование нижнего регистра для имен файлов.
/N Отображение имен файлов в крайнем правом столбце.
/O Сортировка списка отображаемых файлов.
порядок N По имени (алфавитная) S По размеру (сперва меньшие)
E По расширению (алфавитная) D По дате (сперва более старые)
G Начать список с каталогов Префикс "-" обращает порядок
/P Пауза после заполнения каждого экрана.
/Q Вывод сведений о владельце файла.
/S Вывод списка файлов из указанного каталога и его подкаталогов.
/T Выбор поля времени для отображения и сортировки
время C Создание
A Последнее использование
W Последнее изменение
/W Вывод списка в несколько столбцов.
/X Отображение коротких имен для файлов, чьи имена не соответствуют
стандарту 8.3. Формат аналогичен выводу с ключом /N, но короткие
имена файлов выводятся слева от длинных. Если короткого имени у
файла нет, вместо него выводятся пробелы.
/4 Вывод номера года в четырехзначном формате

Стандартный набор ключей можно записать в переменную среды DIRCMD. Для отмены
их действия введите в команде те же ключи с префиксом "-", например: /-W.


для вывода только имен файлов


exec master..xp_cmdshell 'dir С:\  /A/B'
Smile
Дата: 16.12.2002 11:07:43
4 Александр Степанов

Так мне ж для файлов надо, а это для папок.
Для файлов есть такие процедуры?

4 Fil

EXEC master..xp_cmdshell 'dir C:\ /A:-D /B' работает так как мне надо. Спасибо за dir /? =)



А можно ли все таки по-другому как нибудь? Без использования xp_cmdshell