Получение размера файла случайного файла в SAS (Windows) - PullRequest
4 голосов
/ 10 ноября 2010

Я знаю, что функция finfo в SAS возвращает размер файла как одно из информационных полей в Unix. Есть ли аналог в Windows?

Мне нужно иметь возможность получить общее дисковое пространство, используемое в конкретной папке, из кода SAS / AF. Любые предложения приветствуются.

Спасибо

- A

Ответы [ 3 ]

2 голосов
/ 10 ноября 2010

Если у вас SAS версии 9.2 или новее , эта ссылка будет работать независимо от ОС:

http://support.sas.com/kb/38/267.html

Вот перефразированная версия ссылки, которая точно отвечает на ваш вопрос:

%let filename = d:\sasdev\autoexec.sas;
data info; 
  length filesize $60; 
  drop rc fid close; 
  rc=filename("myfile","&filename"); 
  fid=fopen("myfile"); 
  filesize=finfo(fid,"File Size (bytes)"); 
  close=fclose(fid); 
  put filesize=;
run; 

Приветствие Rob

PS - Вы проверили www.runsubmit.com ? Это похоже на StackOverflow, но только для вопросов, связанных с SAS.

2 голосов
/ 10 ноября 2010

Я ранее опубликовал макрос sas для чтения списка каталогов Windows здесь .

0 голосов
/ 11 ноября 2010

Я собираюсь сделать что-то грубое и написать служебную функцию, которая выполняет следующее:

  • Если файл представляет собой набор данных SAS, то используйте стандартные функции SAS для получения размера файла (некоторые математические выражения lrecl и nobs)
  • В противном случае, если это UNIX или SAS 9.2, используйте finfo
  • В противном случае используйте модифицированную версию макроса, написанного @rkoopmann

Обратите внимание, что это нормально для меня только потому, что мои требования должны быть в состоянии получить размер определенного файла.

...