在我编译的Livecode桌面应用程序中,PC版本按预期保存文件和文件夹。 Mac的编译版本都是错误的

问题描述 投票:0回答:2

在我的桌面应用程序中,我有一个非常定义的文件和文件夹结构:

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

在PC上,这写得很好。我定义主文件夹和子文件夹:

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

在Mac上,我有:

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

在PC上,它按预期将文件写入文件夹。在Mac上,似乎写了一个文件夹/文件组合:

/folder1/folder2/file1

作为文件。

为了使软件正常工作,我将文件夹/文件结构复制到了PC上的Mac中。

Mac应用程序未找到现有文件,而是将现有文件夹/文件下面的新文件作为新文件写入。

这都非常令人困惑,我只是不明白为什么它无法正常工作。

感谢您的任何帮助。

麦克

macos file directory livecode pc
2个回答
0
投票

如果LiveCode找不到现有文件,它将创建一个新文件。

我认为使用“ specialFolderPath”时无法连接文件夹。查看字典,该字典仅提供其中包含单个文件夹的示例。

尝试一下:

answer folder "Select Folder"
put it into folderPath

查看局部变量“ it”中返回的内容。然后测试一下。


0
投票

从您的问题中还不清楚您到底想做什么,以及如何将文件写入文件夹结构。如果我正在将文件写入您的apps文件夹结构,则可以这样操作(假设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(“ resources”)表示在开发环境中保存堆栈的文件夹;在独立环境中,它是独立堆栈所在的文件夹。请注意,在Mac上,它位于应用程序捆绑包内。

顺便说一句,此脚本适用于Mac和Windows,假设您对该文件夹具有写权限。这是已编译应用程序的not给定值,因此您可能想使用specialFolderPath(“ support”)或specialFolderPath(“ documents”)来代替specialFolderPath(“ resources”)。 SpecialFolderPath(“ resources”)是存储应用程序需要的静态资产的好地方,但通常不适用于从应用程序写入的文件。

© www.soinside.com 2019 - 2024. All rights reserved.