Считать список файлов в Win папке 
	   
	     | 
   
 
	
		| Предыдущая тема :: Следующая тема   | 
	 
	
	
		| Автор | 
		Сообщение | 
	 
	
		yaffil Профи
 
  Вступление в Клуб: 18.08.2011
  | 
		
			
				 Пн Июн 02, 2014 15:59   Считать список файлов в Win папке | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Как можно считать список файлов в Win папке?
 
Планирую этот список закинуть циклом в тип "Экспорт-импорт файлов", чтобы не тыкать несколько раз в выбор файла.
 
 
Как считывать из Оракла - знаю, есть ли возможность считать с диска C:\ юзера (или сетевого)? | 
			 
		  | 
	 
	
		  | 
	 
	
		vtar Эксперт
 
  Вступление в Клуб: 20.03.2009
  | 
		
			
				 Пн Июн 02, 2014 16:19    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Посмотри
 
 
операция
 
Обработать файлы из НО и соц. фондов
 
 
справочник
 
ИМНС. Протокол обмена  данными с налоговым органом | 
			 
		  | 
	 
	
		  | 
	 
	
		Random Эксперт
 
  Вступление в Клуб: 27.06.2011
  | 
		
			
				 Вт Июн 03, 2014 09:30   Re: Считать список файлов в Win папке | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | yaffil пишет: | 	 		  Как можно считать список файлов в Win папке?
 
Планирую этот список закинуть циклом в тип "Экспорт-импорт файлов", чтобы не тыкать несколько раз в выбор файла.
 
 
Как считывать из Оракла - знаю, есть ли возможность считать с диска C:\ юзера (или сетевого)? | 	  
 
Через клиент-скрипт.
 
 	  | Код: | 	 		  
 
sub OpenDir(p_dir)
 
   Set fs = CreateObject("Scripting.FileSystemObject")
 
 
   if not fs.FolderExists(p_dir) then
 
      MsgBox("Каталог " & p_dir & " не существует на локальной машине")
 
      Exit Sub
 
   end if
 
 
   Set folder = fs.GetFolder(p_dir)
 
   Set fc = folder.SubFolders
 
 
   f=""
 
 
   For Each fl In fc
 
      if len(f) > 10000 then
 
         Form1.ScriptServerValidate OK, "INS_DIR[" & p_dir & "," & f & "]"
 
         f = ""
 
      end if
 
 
      if f <> "" then
 
         f = f & ","
 
      end if
 
 
      f = f & fl.Name
 
   Next
 
   if f <> "" then
 
      Form1.ScriptServerValidate OK, "INS_DIR[" & p_dir & "," & f & "]"
 
      f = ""
 
   end if
 
 
   if N_FILES.Value = 1 then
 
      For Each filefound In folder.Files
 
         if len(f) > 10000 then
 
            Form1.ScriptServerValidate OK, "INS_FILES[" & p_dir & "," & f & "]"
 
            f = ""
 
         end if
 
 
         if filefound.Attributes and 22 then
 
            'Магия!
 
         else
 
            if f <> "" then
 
               f = f & ","
 
            end if
 
 
            f = f & filefound.Name
 
         end if
 
      Next
 
      if f <> "" then
 
         Form1.ScriptServerValidate OK, "INS_FILES[" & p_dir & "," & f & "]"
 
         f = ""
 
      end if
 
   end if
 
end sub
 
 
 | 	 
  | 
			 
		  | 
	 
	
		  | 
	 
	
		yaffil Профи
 
  Вступление в Клуб: 18.08.2011
  | 
		
			
				 Вт Июн 03, 2014 09:36   Re: Считать список файлов в Win папке | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Random пишет: | 	 		  
 
Через клиент-скрипт.
 
 | 	  
 
 
А как его вызвать из секции проверки? У меня в нём есть p_dir (например С:\TEST\ ) - определяется из справочника в соответствии с подразделением пользователя.
 
Как вернуть список файлов через клиент скрипт? | 
			 
		  | 
	 
	
		  | 
	 
	
		san_light Участник со стажем
 
  Вступление в Клуб: 18.03.2011
  | 
		
			
				 Ср Июн 04, 2014 12:04    | 
				     | 
			 
			
				Полезность: 1 
  | 
			 
			
				можно на форму добавить кнопку и параметр (или переменную) типа "строка32000", скажем P_DATA
 
при нажатии (валидации) кнопки запускать уже процедуру поиска файлов (в клиент-скрипте), дополнив ее записью в P_DATA.TEXT списка файлов, и тогда после выполнения скрипта в параметре (переменной) P_DATA будет список файлов
 
 
 	  | Код: | 	 		  
 
sub Files_In_Dir(p_dir)
 
   Set fs = CreateObject("Scripting.FileSystemObject") 
 
   if not fs.FolderExists(p_dir) then 
 
      MsgBox("Каталог " & p_dir & " не существует на локальной машине") 
 
      Exit Sub 
 
   end if 
 
 
   Set folder = fs.GetFolder(p_dir)
 
   f=""
 
   For Each fl In folder.Files 
 
      if f <> "" then
 
         f = f + ","
 
      end if
 
      f = f + fl.Name 
 
   Next
 
   P_DATA.TEXT = f
 
end sub
 
 | 	  
 
 	  | Код: | 	 		  
 
if P_INFO = 'Кнопка' then
 
[CSMD].Command(V_DEST, 'Files_In_Dir("D:\TEST")')
 
end if;
 
 | 	 
  | 
			 
		  | 
	 
	
		  | 
	 
	
		Random Эксперт
 
  Вступление в Клуб: 27.06.2011
  | 
		
			
				 Пт Июн 06, 2014 07:36   Re: Считать список файлов в Win папке | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | yaffil пишет: | 	 		   	  | Random пишет: | 	 		  
 
Через клиент-скрипт.
 
 | 	  
 
 
А как его вызвать из секции проверки? У меня в нём есть p_dir (например С:\TEST\ ) - определяется из справочника в соответствии с подразделением пользователя.
 
Как вернуть список файлов через клиент скрипт? | 	  
 
 
Из секции проверки - никак.
 
Но можно после чтения файлов в клиент-скрипте опять передать управление в секцию проверки, чтобы доделать то, что не доделал в прошлый раз. | 
			 
		  | 
	 
	
		  | 
	 
	
		Random Эксперт
 
  Вступление в Клуб: 27.06.2011
  | 
		
			
				 Пт Июн 06, 2014 07:37    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | san_light пишет: | 	 		  можно на форму добавить кнопку и параметр (или переменную) типа "строка32000", скажем P_DATA
 
при нажатии (валидации) кнопки запускать уже процедуру поиска файлов (в клиент-скрипте), дополнив ее записью в P_DATA.TEXT списка файлов, и тогда после выполнения скрипта в параметре (переменной) P_DATA будет список файлов
 
 | 	  
 
 
Список файлов может превышать 32к
 
 
В моей функции выше это учтено, поэтому она такая длинная. | 
			 
		  | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
  | 
   
 
		 |