В моем скомпилированном настольном приложении Livecode версия P C сохраняет файлы и папки, как и ожидалось. Скомпилированная версия Ma c неверна - PullRequest
0 голосов
/ 28 мая 2020

В моем настольном приложении у меня очень четкая структура файлов и папок:

main_folder ---folder2 ------file1 ------file2 ---folder3 ------file1 ------file2 etc...

На P C это нормально пишет. Я определяю основную папку и подпапки:

put "c:\folder1\folder2\file1" into someVariable

на Ma c, у меня есть:

put specialfolderpath("Documents") & "/folder1/folder2/file1" into someVariable

на P C, файлы в папки записываются как положено. На Ma c вроде бы пишет комбо папка / файл:

/folder1/folder2/file1

в виде файла.

Для работы софта копирую структура папок / файлов в Ma c, как на P C.

Приложение Ma c не находит существующие файлы и затем записывает новые файлы в существующие папки / файлы как новые.

Все это очень сбивает с толку, и я просто не понимаю, почему он не работает должным образом.

Любая помощь приветствуется.

Майк

Ответы [ 2 ]

1 голос
/ 28 мая 2020

LiveCode создаст новый файл, если не сможет найти существующий.

Я не думаю, что вы можете объединить папки при использовании "specialFolderPath". Посмотрите словарь, который дает только примеры, когда включена одна папка.

Попробуйте следующее:

answer folder "Select Folder"
put it into folderPath

Проверьте, что возвращается в локальной переменной «it». Тогда проверьте это.

0 голосов
/ 28 мая 2020

Из вашего вопроса неясно, что именно вы пытаетесь сделать и как вы записываете файлы в свою структуру папок. Если бы я писал файл в структуру папок ваших приложений, я бы сделал это так (при условии, что main_folder - это место, где находится ваше автономное приложение):

put "some text" into tTextString
put specialFolderPath("resources") & "/folder1/folder2/myfile.txt" into tPath
put textEncode(tTextString,"utf8") into URL ("binfile:" & tPath)
# textEncode is needed if you want to preserve unicode characters
# in your file, and is more reliable for cross-platform file exchange

SpecialFolderPath ("ресурсы") означает папку, в которой находится ваш стек сохраняется в среде разработки; в автономной среде это папка, в которой находится автономный стек. Обратите внимание, что на Ma c это находится внутри пакета приложений.

Кстати, этот сценарий должен работать как для Ma c, так и Windows, , если у вас есть права на запись в эту папку . Это не задано для скомпилированного приложения, поэтому вместо specialFolderPath («ресурсы») вы можете использовать specialFolderPath («поддержка») или specialFolderPath («документы»). SpecialFolderPath («ресурсы») - отличное место для хранения статических c ресурсов, необходимых вашему приложению, но обычно не подходит для файлов, написанных из вашего приложения.

...