12

TClientDatasets を使用して XML データ ファイルを読み込み、OS X で動作させようとしている Windows Firemonkey アプリがあります。データ ファイルは Windows ファイル共有に保存されているため、複数のユーザーが同じデータにアクセスできます (私はそうではありません)。ここでは並行性の問題が懸念されます)。

Mac バージョンでサーバーからファイルをロードできないようです - TClientDataset.Filename プロパティで設定したものへのローカル パスが自動的に追加されるようです。

アプリを起動する前にデータファイルをアプリパッケージにコピーすると、完全に機能するので、コードでファイルをコピーしようと思いましたが、それも機能しません-ファイルが見つかりませんサーバー上。

TFile.Exists('smb://<servername>/<path>/Data.xml');

Finder で確認できるにもかかわらず、FALSE を返します。

理想的には、起動時にファイルをコピーして終了時にコピーするよりも、共有からファイルをロードすることをお勧めします。

4

2 に答える 2

0

最大の問題は、Mac OS がネットワーク フォルダーをローカル フォルダーに自動的にマップしないことです。ドライブをマップしなくても、windows virtualy がこれを実行するため、すべてのファイルが一時的に仮想空間にコピーされます。ネットワークフォルダーをマップせずに、Windows上のアプリケーションから直接送信します。

したがって、この問題を解決するには、次のような方法で共有をいくつかのフォルダーにマウントする必要があります。

mkdir /Volumes/WinShareName マウント WinShareName "cifs://server/share"

その後、 TFile.Exists('/Volumes/WinShareName/Data.xml'); を使用できます。または、clientedataset.loadfromfile から直接ロードします。

私は今Macマシンを持っていないのでテストできませんでしたが、それが主なアイデアです。

UPDATED ----ここでネットワークドライバーをマウントする方法の例をもっと見ることができます

于 2012-05-16T13:36:06.107 に答える