Что нового

Проблема функции FileOpen(@ScriptDir

Baumen

Новичок
Сообщения
15
Репутация
0
Всем привет!
У меня есть 3 скрипта.
Скрипт 1 и скрипт 2 лежат в одной папке. А скрипт 3 лежит в отдельной.

Скрипт 1 запускает по очереди скрипт 2 и 3 через runwait

Так вот.. внутри скрипта 2 есть строчка
Код:
FileOpen(@ScriptDir & '\' & $filename, 2)
--
Проблема в том что он пытается найти $filename в папке в которой лежит скрипт 1 который запускает всех

Хотя скрипт 2 лежит в совершенно другой папке и в этой же папке есть собственный $filename

Более того - в обоих папках $filename = текст.txt
Так вот скрипт 2 просто берет и читает $filename = текст.txt из чужой папки (из той - в которой лежит скрипт 1 который его и запустил)
Как поправить?
 

tonycstech

Новичок
Сообщения
94
Репутация
3
Если скрипт 2 лежит в совершенно в другой папке то как он вообше находит 1й и 2й если они не надходятся в @ScriptDir ?
Например 2й в C:\Folder2 а 1й и 3й в C:\
2й не увидит ничего в @ScriptDir кроме себя так как другие скрипты находятся снаружи этой папки.
 

damien2008

Осваивающий
Сообщения
178
Репутация
34
Код:
Local $subfolder = "subfolder"
FileOpen(@ScriptDir & '\' & $filename, 2)
FileOpen(@ScriptDir & '\' & $subfolder & '\' & $filename, 2)
 

Prog

Продвинутый
Сообщения
537
Репутация
65
Из-за чего ограничение функции FileOpen не позволяющее открыть файл для чтения и записи? В WinAPI CreateFile этого ограничения нет. В других ЯП его тоже нет и файлы возможно открыть для чтения/записи.
Два раза открывать файл функцией FileOpen с разными флагами не предлагать - нужен атомарный доступ, а глобальный мьютекс создавать не хотелось бы.
 
Последнее редактирование:
Верх