Имя: Пароль:
1C
 
Как проверить существование каталога?
0 Шамиль
 
24.08.05
15:05
Необходимо проверить из обработки существование каталога на диске, при отсутствии создать его.
1 Таня
 
24.08.05
15:08
АтрибутыФайла проверяй
2 Таня
 
24.08.05
15:09
И существуетФайл
3 Шамиль
 
24.08.05
15:09
То есть есть такой атрибут, каталог? Если можно строчку програмного кода, спасибо.
4 Simod
 
24.08.05
15:11
Если ФС.СуществуетФайл(КаталогИБ()+"\ExtForms\1\") = 0 Тогда
   ФС.СоздатьКаталог(КаталогИБ()+"\ExtForms\1\");
КонецЕсли;
5 SnarkHunter
 
24.08.05
15:11
См. синтакс-помощник, ЖКК. Пожалуйста.
6 Таня
 
24.08.05
15:12
чтобы дать строчку кода надо ее написать, у меня нету

в атрибутах есть параметр <АтрибутыФайлов>
Возвращаемое строковое значение длиной 9 символов, в котором закодированы атрибуты файла. Символы могут принимать значения ''0'' или ''1'':
первый символ: если ''1'' - файл только для чтения;
второй символ: если ''1'' - скрытый файл;
третий символ: если ''1'' - системный файл;
четвертый символ: если ''1'' - каталог;
пятый символ: если ''1'' - архивный файл;
шестой символ: если ''1'' - обычный файл (все другие атрибуты не установлены);
7 Gary
 
24.08.05
15:18
Вообще обычно проверяют существование каталога проверкой открытия/существования псевдо-файла NULL, типа, "Если ФС.СуществуетФайл(Каталог+"\NULL") = 0 Тогда"
8 Парижская фанера
 
24.08.05
15:21
(1 - 7) Хню написали.

fso = СоздатьОбъект("Scripting.FileSystemObject");
Если fso.FolderExists(лсКаталог) = 0 Тогда
Сообщить("Директория: " + лсКаталог + "не найдена!");
КонецЕсли;
9 Шамиль
 
24.08.05
16:50
Если ФС.СуществуетФайл("c:\price") = 0 Тогда
       Сообщить ("Каталог не найден");
       //Если ФС.СуществуетФайл("c:\price")=0 Тогда
       ФС.СоздатьКаталог("c:\price");
   Иначе
       сообщить ("Каталог найден");
   КонецЕсли;
10 Шамиль
 
24.08.05
16:50
Так я написал, тема закрыта, спасибо!
11 Иде я
 
24.08.05
16:52
В корне неверно- c:\price может быть и файлом.
12 Иде я
 
24.08.05
16:53
Процедура СкопироватьФайлССервера(ИмяФайла)
   Перем РазмерИсходный,АтрибИсходный,ВремяИсходный;
   Перем РазмерЗаменяемый,АтрибЗаменяемый,ВремяЗаменяемый;
   Перем АтрибутыФайла;
   Если ФС.СуществуетФайл("c:\zarplata")=0 Тогда
       ФС.СоздатьКаталог("c:\zarplata");
   иначе
       ФС.АтрибутыФайла("c:\zarplata",,АтрибутыФайла,,,,);
       Если Сред(АтрибутыФайла,4,1)<>"1" Тогда
           ФС.СоздатьКаталог("c:\zarplata");
       КонецЕсли;
   КонецЕсли;
   КомандаСистемы("xcopy /Y " +КаталогИБ()+"zarplata\"+ИмяФайла + " c:\zarplata");
КонецПроцедуры
13 Парижская фанера
 
24.08.05
16:59
(12) Попробуй тот же код в сети выполнить...
14 Директор PR отдела
 
24.08.05
17:00
(12) Похоже этим объектом только мы с тобой пользуемся...
15 Директор PR отдела
 
24.08.05
17:01
(14) в (13) я пулял :-)
16 Парижская фанера
 
24.08.05
17:05
(14) Ну что ж. Вокруг полно дятлов-железобетонщиков :)

ЗЫ Для разнообразия пуской попробуют свой фуфельный код выполнить если нет предыдущего каталога (родителя указанного).
17 Иде я
 
24.08.05
17:17
(13)Вообще то он по сети и выполняется :))))
18 Иде я
 
24.08.05
17:17
В части xcopy...
19 Парижская фанера
 
24.08.05
17:22
(17)
1. Путь \\server\1C\ 1С-ина не найдет
2. Если нет предудущего каталога, обработка завалится - 1С не может создавать сквозной путь (нельзя создать сразу цепочку каталогов \1\2\3\4)
Программист всегда исправляет последнюю ошибку.