Joe*_*ker 12 delphi macos network-programming delphi-xe2 firemonkey
我有一个Windows Firemonkey应用程序,它使用TClientDatasets加载我试图在OS X上工作的XML数据文件.数据文件存储在Windows文件共享中,因此多个用户可以访问相同的数据(我不是关注并发问题).
我似乎无法让mac版本从服务器加载文件 - 它似乎自动预先扩展我在TClientDataset.Filename属性中设置的本地路径.
如果我在启动应用程序之前将数据文件复制到应用程序包中,它可以完美地工作,所以我想我会尝试在代码中复制文件,但我无法让它工作 - 它无法找到文件在服务器上.
TFile.Exists('smb://<servername>/<path>/Data.xml');
Run Code Online (Sandbox Code Playgroud)
尽管我可以在Finder中看到它,但返回FALSE.
理想情况下,我更喜欢从共享中加载文件,而不是在启动时复制它们并在退出时复制回来.
最大的问题是 Mac OS 不会自动将您的网络文件夹映射到本地文件夹,即使您没有映射驱动器,Windows Virtualy 也会为您执行此操作,因此所有文件都会临时复制到虚拟空间,这就是您可以使用的原因它直接来自 Windows 上的应用程序,无需映射网络文件夹。
因此,要解决该问题,您需要使用如下命令将共享安装到某个文件夹:
mkdir /Volumes/WinShareName mount WinShareName "cifs://server/share"
因此,之后您可以使用 TFile.Exists('/Volumes/WinShareName/Data.xml'); 或者直接从 clientedataset.loadfromfile 加载它。
我只是无法测试它,因为我现在没有 mac 机器,但这就是主要想法。
已更新 ---- 您可以在此处查看有关如何安装网络驱动程序的更多示例
归档时间: |
|
查看次数: |
704 次 |
最近记录: |