AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Datei wird nicht kopiert in Win2000/XP
Thema durchsuchen
Ansicht
Themen-Optionen

Datei wird nicht kopiert in Win2000/XP

Ein Thema von BrunoT · begonnen am 14. Apr 2005 · letzter Beitrag vom 14. Apr 2005
Antwort Antwort
Benutzerbild von BrunoT
BrunoT

Registriert seit: 23. Jan 2003
Ort: Sandbeiendorf
360 Beiträge
 
Delphi 8 Professional
 
#1

Datei wird nicht kopiert in Win2000/XP

  Alt 14. Apr 2005, 14:39
Hi,

ich habe folgendes Problem:

Ich möchte unter Windows 2000,XP in Delphi eine Datei kopieren. Die Datei kann nicht erstellt werden, da das Verzeichnis ein Unterverzeichnis von Programme ist(Rechtekonflikt). Pur unter Windows im Explorer und unter Kommandozeile ist das Kopieren möglich.

Wie kann ich trotzdem eine Datei dort hin kopieren?(Ich mache das jetz mit Shellexecute und erzeugter Batchdatei, was zwar geht,
aber keine Lösung ist)

ich habe es schon mit GetFileAttributes, GetFileAttributesEx und SetFileAttributes, SetFileAttributesEx versucht,
aber keine Lösung gefunden.

Mfg

BrunoT
Holger

EDV- Ende der Vernunft
Meine Calcedit-Kompo
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Datei wird nicht kopiert in Win2000/XP

  Alt 14. Apr 2005, 14:43
Moin Bruno,

von "Hand" kopieren geht, aber per Programm nicht, da dies wegen Berechtigungen nicht möglich ist?
Kann ja eigentlich nicht sein. Entweder Du darfst da etwas hinkopieren, oder nicht.

Wie hast Du es denn versucht?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von BrunoT
BrunoT

Registriert seit: 23. Jan 2003
Ort: Sandbeiendorf
360 Beiträge
 
Delphi 8 Professional
 
#3

Re: Datei wird nicht kopiert in Win2000/XP

  Alt 14. Apr 2005, 14:52
Hallo Christian,

ich habe aus FMXUtils (Delphi/Docs) die Procedure Copyfile benutzt, welche sonst immer funktioniert, nur dort nicht.

mfg

Delphi-Quellcode:

procedure CopyFile(const FileName, DestName: string);
var
  CopyBuffer: Pointer; { buffer for copying }
  BytesCopied: Longint;
  Source, Dest: Integer; { handles }
  Len: Integer;
  Destination: TFileName; { holder for expanded destination name }
const
  ChunkSize: Longint = 8192; { copy in 8K chunks }
begin
  Destination := ExpandFileName(DestName); { expand the destination path }
  if HasAttr(Destination, faDirectory) then { if destination is a directory... }
  begin
    Len := Length(Destination);
    if Destination[Len] = '\then
      Destination := Destination + ExtractFileName(FileName) { ...clone file name }
    else
      Destination := Destination + '\' + ExtractFileName(FileName); { ...clone file name }
  end;
GetMem(CopyBuffer, ChunkSize); { allocate the buffer }
  try
    Source := FileOpen(FileName, fmShareDenyWrite); { open source file }
    if Source < 0 then raise EFOpenError.CreateFmt(SFOpenError, [FileName]);
    try
      Dest := FileCreate(Destination); { create output file; overwrite existing }
      if Dest < 0 then raise EFCreateError.CreateFmt(SFCreateError, [Destination]);
      try
        repeat
          BytesCopied := FileRead(Source, CopyBuffer^, ChunkSize); { read chunk }
          if BytesCopied > 0 then { if we read anything... }
            FileWrite(Dest, CopyBuffer^, BytesCopied); { ...write chunk }
        until BytesCopied < ChunkSize; { until we run out of chunks }
      finally
        FileClose(Dest); { close the destination file }
      end;
    finally
      FileClose(Source); { close the source file }
    end;
  finally
    FreeMem(CopyBuffer, ChunkSize); { free the buffer }
  end;
end;
Holger

EDV- Ende der Vernunft
Meine Calcedit-Kompo
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Datei wird nicht kopiert in Win2000/XP

  Alt 14. Apr 2005, 15:00
Hallo Bruno,
hast du mal versucht die Datei "manuell" dort hinzukopieren, wie Christian gesagt hat? Wenn du nicht als Administrator angemeldet bist, hast du vielleicht gar nicht die Rechte dort etwas hinzukopieren.

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von BrunoT
BrunoT

Registriert seit: 23. Jan 2003
Ort: Sandbeiendorf
360 Beiträge
 
Delphi 8 Professional
 
#5

Re: Datei wird nicht kopiert in Win2000/XP

  Alt 14. Apr 2005, 15:13
Hallo freak4fun,

Zitat von freak4fun:
hast du mal versucht die Datei "manuell" dort hinzukopieren:
Ich bin mit Admin-Rechten angemeldet und das Kopieren in das Verzeichnis funktioniert von "Hand" und als Batch(Explorer und CMD).

Es werden irgendwelche Rechte von "oben" durchgereicht, an denen Delphi nicht vorbeikommt

mfg

BrunoT
Holger

EDV- Ende der Vernunft
Meine Calcedit-Kompo
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Datei wird nicht kopiert in Win2000/XP

  Alt 14. Apr 2005, 15:33
Moin Bruno,

schau Dir mal lieber Hier im Forum suchenSHFileOperation (MSDN-Library durchsuchenSHFileOperation) an.
Die kopiert dann die Dateien auch mit den NTFS-Berechtigungen, und nicht nur die reinen Daten.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von BrunoT
BrunoT

Registriert seit: 23. Jan 2003
Ort: Sandbeiendorf
360 Beiträge
 
Delphi 8 Professional
 
#7

Re: Datei wird nicht kopiert in Win2000/XP

  Alt 14. Apr 2005, 15:50
Hallo Christian,

danke für den Hinweis, ich werde es mir anschauen, um solchen Fehlern vorzubeugen.

übrigens nach Kompilieren des ganzen Projektes funktionierte es plötzlich .

Warum, werde ich wohl nie erfahren.

mfg

BrunoT
Holger

EDV- Ende der Vernunft
Meine Calcedit-Kompo
  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 06:21 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