• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

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

11BOSS11

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

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

nvyush

:)
dir, open, print

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

11BOSS11

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

FILENAME= Dir$(pathName$)
:)
 
D

Darker

Код:
mkDir

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

11BOSS11

так чтоли:
Код:
pathName$="c:\temp\123.txt"
Mkdir pathName$
FILENAME= Dir$(pathName$)

тоже не получается...
 
A

alik86

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

11BOSS11

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



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

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

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

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

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
-для темпов - юзать получение временного каталога ср-вами нотусов
-для созадния диров - поставить обработку ошибок, с Resume Next для случая "нужных" исключений (просто пройдет дальше, ежели сущ. каталог)
традиционно
-юзать java для рекурсивного создания диров :):
Код:
			// Setup directories
File baseDir = new File("c:\\examples\\embedding");
File outDir = new File(baseDir, "out");
outDir.mkdirs();

и бэкслэши не являются универсальными в ЛС (к тому же - гимор с экранирование), можно использовать прямые (в путях)
 
N

nvyush

у меня проблеа:

есть путь: "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
7 933
609
BIT
177
nvy
не надо учить такому ;)...
зачем проверять файл? - NotesStream.Open
куча ифов, если большая вложенность - ну очень нагружает код
 
N

nvyush

nvy
не надо учить такому ;)...
Ну так я с самого начала указал, где и что почитать. Ну а дальше — каков вопрос, таков ответ ;) .

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

11BOSS11

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


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

11BOSS11

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

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
читайте мануал, про работу со строками...
StrLeftBack
 
1

11BOSS11

я вот так сделал:

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


DIRECTORYNAME=Left(FILENAME,ks1-1)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!