Hallo zusammen,
ich bin gerade am Verzweifeln...
Ich möchte MP3-Dateien von A nach B verschieben. Dies Funktioniert auch soweit unter XP aber unter VISTA ist das bei manchen Rechnern nicht möglich.
Es hagelt nur noch Fehlermeldungen bzw. er verweigert das kopieren.
Nur wenn man in der Registerdatei des Ordners bei Sicherheit JEDER einträgt und auch volle Schreibrechte vergibt funktioniert es...
Nur das kann ja nicht die Lösung sein, zumal das sehr unsicher ist
.
Wie könnte ich nun das Ganze so umsetzen, dass mein Programm Zugriff hat. Ich habe hier aus dem Forum den
folgenden Code zum kopieren der Dateien. Ich bin mir aber nicht sicher, ob nicht der das Problem ist.
Hier der Code:
Delphi-Quellcode:
function DoFileWork(
aWnd: HWND; aOperation: UINT; aFrom, aTo: TStrings; aFlags: FILEOP_FLAGS
): Integer;
var
I: Integer;
FromPath, ToPath: string;
SHFileOpStruct: TSHFileOpStruct;
begin
FromPath := '';
for I := 0 to aFrom.Count - 1 do
FromPath := FromPath + aFrom.Strings[I] + #0;
FromPath := FromPath + #0;
if Assigned(aTo) then
begin
ToPath := '';
for I := 0 to aTo.Count - 1 do
ToPath := ToPath + aTo.Strings[I] + #0;
ToPath := ToPath + #0;
if aTo.Count > 0 then
aFlags := aFlags or FOF_MULTIDESTFILES;
end;
with SHFileOpStruct do
begin
Wnd := aWnd;
wFunc := aOperation;
pFrom := PChar(FromPath);
if Assigned(aTo) then
begin
pTo := PChar(ToPath)
end else begin // target available
pTo := nil;
end; // target not available
fFlags := aFlags;
end; // structure
Result := SHFileOperation(SHFileOpStruct);
end;
if dxBarButton14.Down then dofilework(self.Handle,FO_COPY,von,nach,FOF_MULTIDESTFILES+FOF_RENAMEONCOLLISION) else dofilework(self.Handle,FO_MOVE,von,nach,FOF_MULTIDESTFILES+FOF_RENAMEONCOLLISION);
// Die Variablen von, nach sind Stringlisten die gefüllt werden.
Danke!
P.s.: Ich habe gerade gesehen, dass das Programm die Dateien in das Programmverzeichnis kopiert oO.
Delphi is ......... DELPHI!!