1

私は Mac で書かれた Realbasic コードをたくさん持っていて、それを Windows に移植する予定です。では、REAL Studio 内からプログラムを実行してみましょう。GetFolderItem("") は、アプリケーションが存在するフォルダーを返します。 Child("A") は、別の FolderItem を期待通りに返します。しかし、A で Child("B") を呼び出すと、Directory プロパティに False が設定された FolderItem が返されます。しかし、B は私の Windows 上のフォルダーです! そのため、B の子を取得できなくなり、nil が返されるだけです。このコードは MacOSX で正常に動作しました。助言がありますか?

前もって感謝します、私

4

2 に答える 2

2

あなたが思っているディレクトリにいないのではないかと思います。デバッガーでパスを調べて、デバッガーがあなたと同じ場所を探しているかどうかを確認してください。

これは、RB で Mac と Windows を扱う場合によくある問題です。Mac では、外部ファイル/ディレクトリが存在しないように、多くのものがバンドル フォルダーに配置されます。また、Windows には同等のファイルがないため、ユーザーはそれらがどのパスにあるかについて混乱します。

ところで、最初に GetFolderItem("") を使用する必要はありません。GetFolderItem("A") は、アプリが存在するディレクトリにデフォルト設定されているため、単純に使用できます。

于 2010-06-16T22:25:22.487 に答える
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")

関数に入れて再利用することもできます。

于 2014-08-30T11:28:56.427 に答える