2012-04-16 9 views
12

Ich habe eine Windows-Anwendung, die Firemonkey TClientDatasets verwendet XML-Dateien zu laden, die ich versuche, auf OS X erhalten Die Dateien auf einem Windows-Dateifreigabe, so dass mehrere Benutzer gespeichert sind, arbeiten können greifen Sie auf die gleichen Daten zu (ich kümmere mich hier nicht um Nebenläufigkeitsprobleme).TClientDataset in OS X Firemonkey App

Ich kann nicht scheinen, die Mac-Version zu bekommen, laden Sie die Dateien vom Server - es scheint automatisch den lokalen Pfad vorzuformen, was ich in der TClientDataset.Filename -Eigenschaft festgelegt habe.

Wenn ich die Datendateien in das App-Paket kopiere, bevor ich die App starte, funktioniert es einwandfrei, also dachte ich mir, ich würde versuchen, die Dateien im Code zu kopieren, aber das funktioniert auch nicht - es kann ' t finde die Dateien auf dem Server.

Gibt FALSE zurück, obwohl ich es im Finder sehen kann.

Idealerweise würde ich es vorziehen, um die Dateien von der Freigabe zu laden, anstatt kopieren Sie sie beim Start und kopieren Sie an der Ausfahrt zurück.

+3

ich denke, es hat nichts mit TClientDataSet zu tun hat. Das Problem scheint, dass Sie die freigegebene Datei nicht in Ihrer Anwendung sehen können. Ist Ihnen bewusst, dass bei Mac-Dateinamen die Groß-/Kleinschreibung beachtet wird? –

Antwort

0

Das größte Problem ist, dass Mac OS Ihren Netzwerkordner nicht automatisch einem lokalen Ordner zuordnet, Windows macht das virtuell für Sie, auch wenn Sie Ihr Laufwerk nicht zuordnen, sodass alle Dateien in einen virtuellen Raum kopiert werden Warum können Sie es direkt von Ihrer Anwendung auf Windows verwenden, ohne den Netzwerkordner abzubilden.

So, dieses Problem zu lösen Sie Ihren Anteil zu einem gewissen Ordner mit so etwas wie dies zu montieren benötigen:

mkdir/Volumes/WinShareName Mount WinShareName "cifs: // server/share"

So danach konnte man die TFile.Exists verwenden ('/ Volumes/WinShareName/data.xml'); Oder es direkt von clientedataset.loadfromfile laden.

ich could'nt nur testen, weil ich ohne mac Maschine bin jetzt aber das ist die Hauptidee.

AKTUALISIERT ---- können Sie weitere Beispiele sehen, wie ein Netzwerktreiber montieren here

0

Ich hatte ein ähnliches Problem und es funktionierte auf, indem einen TCP-Server auf der Windows-Seite und einen TCP-Client aus die Client-Seite .. und .. die xML-Datei durch Ströme zu senden funktioniert wie ein Charme ...