Um eine Datei von einem bestimmten Pfad über die Windows Portable Devices (WPD)
API in Delphi zu laden, müssen Sie die WPD-
API verwenden, um mit dem MTP-Gerät zu kommunizieren. Hier ist ein einfaches Beispiel, das zeigt, wie Sie eine Datei von einem MTP-Gerät abrufen können.
### Voraussetzungen
Stellen Sie sicher, dass Sie die WPD-
API in Ihrem Delphi-Projekt verwenden können. Möglicherweise müssen Sie die entsprechenden
COM- und WPD-Header-Dateien einbinden.
### Beispielcode
Hier ist ein einfaches Beispiel, das zeigt, wie Sie eine Datei von einem MTP-Gerät abrufen können:
Delphi-Quellcode:
uses
Windows,
ActiveX, ComObj, WPD;
procedure DownloadFileFromMTP(
const DeviceId:
string;
const FilePath:
string);
var
DeviceManager: IWpdDeviceManager;
Device: IWpdDevice;
ObjectId:
string;
FileStream: TFileStream;
hr: HRESULT;
begin
CoInitialize(
nil);
try
// Erstellen Sie eine Instanz des WpdDeviceManager
hr := CoCreateInstance(CLSID_WpdDeviceManager,
nil, CLSCTX_INPROC_SERVER, IWpdDeviceManager, DeviceManager);
if Succeeded(hr)
then
begin
// Holen Sie sich das Gerät
hr := DeviceManager.GetDevice(PWideChar(DeviceId), Device);
if Succeeded(hr)
then
begin
// Hier können Sie die Datei vom Gerät abrufen
// Beispiel: Angenommen, Sie haben die ObjectId der Datei, die Sie herunterladen möchten
ObjectId := '
Ihre_ObjectId';
// Setzen Sie hier die ObjectId der Datei ein
// Erstellen Sie einen Stream, um die Datei zu speichern
FileStream := TFileStream.Create(FilePath, fmCreate);
try
// Verwenden Sie die Methode, um die Datei herunterzuladen
hr := Device.Transfer(ObjectId, FileStream);
if Succeeded(hr)
then
ShowMessage('
Datei erfolgreich heruntergeladen!')
else
ShowMessage('
Fehler beim Herunterladen der Datei.');
finally
FileStream.Free;
end;
end
else
ShowMessage('
Fehler beim Abrufen des Geräts.');
end
else
ShowMessage('
Fehler beim Erstellen des Device Managers.');
finally
CoUninitialize();
end;
end;
### Hinweise
1. **DeviceId**: Sie müssen die `DeviceId` des MTP-Geräts angeben, mit dem Sie kommunizieren möchten. Diese ID können Sie durch Abfragen der angeschlossenen Geräte erhalten.
2. **ObjectId**: Sie müssen die `ObjectId` der Datei angeben, die Sie herunterladen möchten. Diese ID können Sie ebenfalls durch Abfragen des Geräts erhalten.
3. **Fehlerbehandlung**: In einem echten Anwendungsfall sollten Sie eine umfassendere Fehlerbehandlung implementieren.
4. **WPD-Header**: Stellen Sie sicher, dass Sie die richtigen Header-Dateien für die WPD-
API in Ihr Delphi-Projekt einfügen.
### Fazit
Dieses Beispiel zeigt die grundlegenden Schritte zum Herunterladen einer Datei von einem MTP-Gerät in Delphi. Je nach Ihren Anforderungen müssen Sie möglicherweise zusätzliche Funktionen implementieren, um die Liste der Geräte und Dateien abzurufen. Wenn Sie weitere Fragen haben oder spezifische Probleme auftreten, lassen Sie es mich wissen!