Работа с каталогами и файлами

  • Автор темы 11BOSS11
  • Дата начала
1

11BOSS11

Гость
#1
Открытие файла для записи (проверка на существование полного пути и создание при необходимости директорий)

допустим мне надо открыть такой файл : c:\temp\123.txt , если такой директории и файла нету, то создать его.........
:)
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
#2
:)
dir, open, print

См. в справке дизайнера раздел "File Handling"
 
1

11BOSS11

Гость
#4
посмотрите пожалуйста в чем ошибка,
делаю вот таким от обрахом:
Код:
pathName$=c:\temp\123.txt

FILENAME= Dir$(pathName$)
:)
 
D

Darker

Гость
#5
Код:
mkDir
Добавлено: Кавычки?
Если не поможет, то двойной слэш попробуй, от платформы зависет
 
1

11BOSS11

Гость
#6
так чтоли:
Код:
pathName$="c:\temp\123.txt"
Mkdir pathName$
FILENAME= Dir$(pathName$)
тоже не получается...
 

alik86

Well-Known Member
Lotus team
20.11.2008
465
1
#7
Mkdir создает директорию, а не файл!
' Create directory TEST, in the root directory of drive C.
MkDir "c:\test"
Добавлено: причем оно не создаст Вам сразу две директории (C:\Dir1\Dir2) -- надо создать сначала C:\Dir1, а потом C:\Dir1\Dir2
 
1

11BOSS11

Гость
#9
с созданием директории яразобрался с помощю MkDir , а вот как проверить есть ли уже такая директория, и елс ида то не создавать?
- и как мне проверять есть ли файл "c:\temp\123.txt" , если нет , то создавать?



Добавлено:
MkDir не относился к твоей проблеме
у меня проблеа:

есть путь: "c:\temp\123.txt"
- проверить есть ли такой каталог , если нету создать.
- проверить есть ли такой файл, елси нету создать.

вот вся моя проблеа,. там далше как работать с файлами я знаю........

а MkDir мне надо для того чтобы создать каталог если такового не имеется...
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 485
360
#10
-для темпов - юзать получение временного каталога ср-вами нотусов
-для созадния диров - поставить обработку ошибок, с Resume Next для случая "нужных" исключений (просто пройдет дальше, ежели сущ. каталог)
традиционно
-юзать java для рекурсивного создания диров :):
Код:
			// Setup directories
File baseDir = new File("c:\\examples\\embedding");
File outDir = new File(baseDir, "out");
outDir.mkdirs();
и бэкслэши не являются универсальными в ЛС (к тому же - гимор с экранирование), можно использовать прямые (в путях)
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
#11
у меня проблеа:

есть путь: "c:\temp\123.txt"
- проверить есть ли такой каталог , если нету создать.
- проверить есть ли такой файл, елси нету создать.
Код:
If Dir$("c:\temp", 16) = "" Then Mkdir("c:\temp")
If Dir$("c:\temp\123.txt", 0) = "" Then 
'...
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 485
360
#12
nvy
не надо учить такому ;)...
зачем проверять файл? - NotesStream.Open
куча ифов, если большая вложенность - ну очень нагружает код
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
#13
nvy
не надо учить такому ;)...
Ну так я с самого начала указал, где и что почитать. Ну а дальше — каков вопрос, таков ответ ;) .

И потом, мы же не знаем, какая стоит задача. М.б. нужно не затирать файл, а создать новый (как Word версии сохраняет).
 
1

11BOSS11

Гость
#14
ОО всем огромнейшее спасибо за помощь!! ;)


Добавлено: а не подскажите какой ф-ей воспольховатся для выделения из "c:\temp\123.txt" только адреса директории, инымы словамы мне надо урезать имя файла... ;)
 
1

11BOSS11

Гость
#15
вообщем если бы я знал имя файла можна было бы воспольховатся InStr и Left, а так мне надо обрезать все справа до первого слеша,...
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 485
360
#16
читайте мануал, про работу со строками...
StrLeftBack
 
1

11BOSS11

Гость
#18
я вот так сделал:

Код:
For i=1 To Len(FILENAME)
If Right(Left(FILENAME, i),1)="\"  Then
ks1=i
End If
Next


DIRECTORYNAME=Left(FILENAME,ks1-1)