|
Создать файл, включая все промежуточные каталоги | ☑ | ||
---|---|---|---|---|
0
suvolod
03.04.13
✎
07:57
|
Добрый день! Есть путь типа "D:\Exchange\Obr\Log\01.04.2013\log.txt"
В языке 1С я не смог найти функции, которая может создать файл, включая все промежуточные каталоги, в которых должен лежать файл лога. Такая функция есть? ... или придется парсировать строку, выделять из нее названия каталогов, и создавать их по одному? |
|||
1
ZanderZ
03.04.13
✎
07:59
|
есть объект "Файл" - у него свойство "Путь"
|
|||
2
Jonny_Khomich
03.04.13
✎
08:00
|
(0) СП, гугл, яндекс рулит!
|
|||
3
suvolod
03.04.13
✎
08:01
|
(1) Что мне это даст? Путь - это свойство, а мне нужно метод, типа
ЛогФайл = СоздатьФайл(D:\Exchange\Obr\Log\01.04.2013\log.txt")... и чтобы файл был создан, включая все каталоги: Exchange, Obr, Log ...etc |
|||
4
Jonny_Khomich
03.04.13
✎
08:03
|
(3) Пример:
ИмяФайла = "C:\Test\readme.txt"; ВыбФайл = Новый Файл(ИмяФайла); Если ВыбФайл.Существует() Тогда Стр = "Результат выполнения:"+Символы.ПС+ +"Файл: "+ВыбФайл.ПолноеИмя+Символы.ПС+ +"Имя: "+ ВыбФайл.Имя+Символы.ПС+ +"Имя без расширения: "+ВыбФайл.ИмяБезРасширения+Символы.ПС+ +"Расширение: "+ВыбФайл.Расширение+Символы.ПС+ +"Путь: "+ВыбФайл.Путь+Символы.ПС+ +"Размер: "+ВыбФайл.Размер()+Символы.ПС+ +"Это файл: "+ВыбФайл.ЭтоФайл()+Символы.ПС+ +"Время изменения: "+ВыбФайл.ПолучитьВремяИзменения()+Символы.ПС+ +"Только чтение: "+ВыбФайл.ПолучитьТолькоЧтение()+Символы.ПС+ +"Невидимость: "+ВыбФайл.ПолучитьНевидимость(); Сообщить(Стр); Иначе Предупреждение("Файл не найден!"); КонецЕсли; //Результат выполнения: //Файл: C:\Test\readme.txt //Имя: readme.txt //Имя без расширения: readme //Расширение: .txt //Путь: C:\Test//Размер: 916 //Это файл: истина //Время изменения: 31.10.2000 12:42:04 //Только чтение: истина //Невидимость: ложь Выдежрка из СП |
|||
5
suvolod
03.04.13
✎
08:07
|
(4)Jonny_Khomich, спасибо конечно, но это тоже не то. Ладно... видимо, придется самому писать функцию СоздатьФайлВключаяВсеПромежуточныеКаталоги() :)
|
|||
6
ZanderZ
03.04.13
✎
08:08
|
(3) читай СП там все есть
Файло = Новый Файл(ИмяФайла); Путь = Файло.Путь; Текст = Новый ЗаписьТекста(Путь+ИмяФайлаТвоего, КодировкаТекста.ANSI); Текст.ЗаписатьСтроку("Добро пожаловать!"); Текст.ЗаписатьСтроку("Посторонним вход воспрещен."); Текст.Закрыть(); |
|||
7
ZanderZ
03.04.13
✎
08:08
|
(5) ага изобретай колесо
|
|||
8
Jonny_Khomich
03.04.13
✎
08:09
|
(7) +1
|
|||
9
suvolod
03.04.13
✎
08:15
|
(6), (7) Не получается так.. падает в исключение при попытке выполнения строки с пока не существующим путем:
Новый ЗаписьТекста(Путь + "log.txt", КодировкаТекста.ANSI); |
|||
10
ZanderZ
03.04.13
✎
08:17
|
(9) от человек даже думать уже не хочет... создай каталог, потом пиши. Метод для создания каталога я думаю найдешь или сообразишь
|
|||
11
suvolod
03.04.13
✎
08:19
|
На всякий случай: тестировал вот на таком коде:
ИмяФайлаЛогов = "C:\111\log.txt"; ЛогФайл = Новый Файл(ИмяФайлаЛогов); Путь = ЛогФайл.Путь; Текст = Новый ЗаписьТекста(Путь + "log.txt", КодировкаТекста.ANSI); Текст.ЗаписатьСтроку("Добро пожаловать!"); Текст.ЗаписатьСтроку("Посторонним вход воспрещен."); Текст.Закрыть(); ... хотя, на мой взгляд, здесь первые строчки вообще лишние. Достаточно было и так: ИмяФайлаЛогов = "C:\111\log.txt"; Текст = Новый ЗаписьТекста(ИмяФайлаЛогов, КодировкаТекста.ANSI); Текст.ЗаписатьСтроку("Добро пожаловать!"); Текст.ЗаписатьСтроку("Посторонним вход воспрещен."); Текст.Закрыть(); |
|||
12
suvolod
03.04.13
✎
08:21
|
(9). Блин, так я об этом и справшивал еще в (0)!
ЕСТЬ ИЛИ НЕТ функция, создающая файл вместе с каталогами ?!!! |
|||
13
suvolod
03.04.13
✎
08:22
|
всем спасибо за участие.. пошел писать универсальную функцию
|
|||
14
Галахад
гуру
03.04.13
✎
08:31
|
Млин. Какие нафиг универсальные?
СоздатьКаталог("C:\1\1\1"); ИмяФайлаЛогов = "C:\1\1\1\log.txt"; Текст = Новый ЗаписьТекста(ИмяФайлаЛогов, КодировкаТекста.ANSI); Текст.ЗаписатьСтроку("Добро пожаловать!"); Текст.ЗаписатьСтроку("Посторонним вход воспрещен."); Текст.Закрыть(); |
|||
15
Cyberhawk
03.04.13
✎
08:37
|
(0) если у тебя на входе готовое имя файла, то в 1С нет готовой функции, которая создаст тебе этот файл вместе с каталогом. Нужно отрезать все до последнего слеша и создать каталог, а затем уже файл в этом каталоге.
|
|||
16
ZanderZ
03.04.13
✎
08:42
|
(15) еще один с парсером строки..
|
|||
17
suvolod
03.04.13
✎
08:49
|
(14) Снимаю шляпу... Про СоздатьКаталог - знал, но про то, что он способен создавать вложенные каталоги - не додумался.
|
|||
18
Cyberhawk
03.04.13
✎
08:53
|
(16) ну иначе-то никак, если строка с именем файла
|
|||
19
kosts
03.04.13
✎
09:01
|
(18) Для несуществующего файла вполне работает
D:\Exchange\Obr\Log\01.04.2013\ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |