我有一堆Realbasic代码写在Mac上,我应该移植到Windows。现在让我们尝试从REAL Studio中运行程序。 GetFolderItem(“”)返回应用程序所在的文件夹。子(“A”)返回另一个FolderItem我的期望。但是当我在A上调用Child(“B”)时,它返回一个FolderItem,其中为Directory属性设置了False。但是B是我Windows上的一个文件夹!所以现在它不会让我得到一个B的孩子,它只返回零。此代码在MacOSX上运行良好。有什么建议吗?
提前致谢, 我
答案 0 :(得分:2)
我怀疑你不在你认为的目录中。尝试查看调试器中的路径,看看调试器是否在同一个地方查看。
在RB中处理Mac与Windows时,这是一个常见问题。在Mac上,很多东西放在bundle文件夹中,因此没有外部文件/目录,而且由于Windows没有等效内容,人们会对它们所处的路径感到困惑。
顺便说一下,您不需要先使用GetFolderItem(“”)。您可以简单地使用GetFolderItem(“A”),因为它默认为App所在的目录。
答案 1 :(得分:0)
通常我更喜欢使用此代码。它是自我解释并避免这种常见错误。
dim base as folderitem = App.ExecutableFile.Parent
#if DebugBuild = true then
base = App.ExecutableFile.Parent.Parent
#endif
dim target as folderitem = base.Child("A").Child("B")
您也可以将其放入函数中以便重复使用。