AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Direkt auf Portable Media Device kopieren
Thema durchsuchen
Ansicht
Themen-Optionen

Direkt auf Portable Media Device kopieren

Ein Thema von FBrust · begonnen am 7. Mai 2011 · letzter Beitrag vom 9. Mai 2011
Antwort Antwort
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#1

Direkt auf Portable Media Device kopieren

  Alt 7. Mai 2011, 13:47
Hallo,

ich hab günstig einen MP3-Player von Creative (Zen Vision:M) bekommen.

Dieser taucht im Arbeitsplatz unter Windows XP einmal als "Portable Media Device" und als "Systemordner" auf.

Ich würde gerne per Delphi-Programm MP3s direkt dort drauf kopieren (der Ordner ist bekannt, s. Screenshot), aber wenn ich mit einem JvDirectoryEdit den entsprechenden Ordner öffne, erhalte ich z. B. beim Portable Media Device im Edit-Feld den Text

::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\Creative Zen Vision:M\Media\Music

und das Kopieren mit folgender Routine scheitert ("Zielpfad fehlt oder ist ungültig"):

Delphi-Quellcode:
function Copyfiles(slSource, slTarget: TStringList): integer;
var op: TSHFileOperation;
begin
    op := TSHFileOperation.Create(Self.Handle);
    try
      op.Operation := fotCopy;
      op.Flags := [fofFilesOnly, fofNoConfirmation];
      op.SourceList.Assign(slSource);
      op.TargetList.Assign(slTarget);
      op.ExecuteOperation;
    finally
      Result := op.FileOpResult;
      op.Free;
    end;
end;
Drag&Drop per Windows-Explorer funktioniert im übrigen.

Meine Frage ist: Wie spricht man solche Geräte bzw. Ordner mit Delphi an, um Dateien zu kopieren bzw. zu löschen?


Gruß
Frank
Miniaturansicht angehängter Grafiken
creative.jpg  
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty

Geändert von FBrust ( 7. Mai 2011 um 20:26 Uhr) Grund: ja ja, die Grammatik :)
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Direkt auf Portable Media Device kopieren

  Alt 8. Mai 2011, 16:23
Hmm, ok,

vielleicht gehts anders:

Per Drag&Drop kann ich Ordner mit MP3s in dem in dem Screenshot angezeigten Ordner ablegen, die dann auch auf dem Gerät auftauchen.

Gibt es eine Möglichkeit, D&D zu simulieren? (keine Ahnung, wie das aussehen soll, deswegen frag ich ja hier )

Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Direkt auf Portable Media Device kopieren

  Alt 8. Mai 2011, 16:36
So viel ich weiss, kann man mit der Api nur Datei kopieren, nicht ne ganze Liste!
Wie sollte sie auch.
Übrigens musss man auch bei der Übergabe von Ziel und Quelle noch #0 anhängen

Delphi-Quellcode:
function CopyDir(const fromDir, toDir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc := FO_COPY;
    fFlags := FOF_FILESONLY;
    pFrom := PChar(fromDir + #0);
    pTo := PChar(toDir + #0);
  end;
  Result := (0 = ShFileOperation(fos));
end;
Gruss alfold

Geändert von alfold ( 8. Mai 2011 um 17:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#4

AW: Direkt auf Portable Media Device kopieren

  Alt 8. Mai 2011, 18:22
Mal die Frage: Was steht denn in Result drin und was meint MSDN-Library durchsuchenGetLastError() ? - So sollte sich der Fehler ziemlich eingrenzen lassen.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Direkt auf Portable Media Device kopieren

  Alt 9. Mai 2011, 22:16
Hallo,

so ich hab noch etwas rumgebastelt und folgendes herausgefunden:

Die obige Fehlermeldung kam von der DirectoryExists-Prüfung. Wenn diese ausschalte, läuft das Programm weiter, bis zum CopyFiles (das beim Execute auch feststellt, dass der Ordner nicht existiert und nachfragt, ob der Ordner erstellt werden soll) und bricht dann mit der Meldung:

Zitat:
::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\Creative Zen Vision:M\Media\Music\Testalbum bezieht sich auf einen Pfad der nicht verfügbar ist. Dieser kann auf einer Festplatte dieses Computers oder im Netzwerk sein. Stellen Sie sicher, dass der Datenträger korrekt eingelegt ist, bzw. dass eine Verbindung mit dem Internet oder dem eigenen Netzwerk besteht und wiederholen Sie den Vorgang. Es kann sein, dass die Informationen in einen anderen Pfad verschoben wurden, wenn der Pfad weiterhin nicht ermittel werden kann.
ab, der Rückgabewert von Copyfiles ist dann 1223, der von GetLastError ist 0.

Tja...der Pfad existiert aber bis einschließlich "Music", ich kann ihn ja im Verzeichnisdialog vom DirectoryEdit auswählen. Ausserdem kann ich, wie gesagt, Dateien und Verzeichnisse per Drag&Drop rüberziehen.

Wenn ich versuche, das Verzeichnis mit ForceDirectories anzulegen, schlägt das fehl (false) und GetLastError() liefert eine 3 zurück.

Kann es sein, dass die Pfadbezeichnung ein Anlegen von Verzeichnissen per Programmierung verhindert bzw. dass das Kopieren von Dateien nur mit "echten" Laufwerken, also z. B. "D:\bla...." bzw. mit UNC-Pfaden funktioniert?

Edit: Habe gerade festgestellt, dass in der Explorer-Ansicht für besagtes "Music"-Verzeichnis sich keine neuen Verzeichnisse anlegen lassen, nur wenn man Ordner per Drag&Drop rüberzieht, werden diese auch angelegt. Löschen ist aber möglich *kopfkratz*

Was nun, hat vielleicht noch jemand einen Tip?


Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty

Geändert von FBrust ( 9. Mai 2011 um 22:23 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz