Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » GNU/Linux » Datei stückweise kopieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.12.2003, 21:11 Uhr
~Alfred
Gast


Hi,

ich möchte gerne eine etwas grössere Datei von CD auf meine Festplatte kopieren. Doch da die CD etwas verkratzt ist, kommt jedesmal an einer anderen Stelle eine Lesefehler und das Kopieren der Datei wird abgebrochen. Ein Stück der Datei habe ich aber auf der Festplatte.

Nun ist meine Frage, wie ich nun an das Stück, dass ich bereits habe, den Rest der Datei kopieren kann.
Wie kann ich also eine Datei stückweise kopieren?

Vielen Dank im Voraus

Alfred
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.12.2003, 21:34 Uhr
Pablo
Supertux
(Operator)


Lad dir diese Sourcen runter:
http://pcpool.mathematik.uni-freiburg.de/~pabloy/fastcp-1.0.1.tar.gz

Die wichtige Funktion, die das macht ist copyfile, das macht Stück für Stück.


C++:
int copyfile(const char* source, const char* destiny)
{
  FILE* src, *dty;
  unsigned int read=0;
  char buffer[MAX_LENGTH];
  
  if((src=fopen(source, "rb")) == NULL)
    return -1;
  if((dty=fopen(destiny, "wb")) == NULL) {
    fclose(src);
    return -2;
  }

  while( (read = fread(buffer,1,MAX_LENGTH, src)) > 0 ) {
    if(read != fwrite(buffer, 1, read, dty)) {
      fclose(dty);
      fclose(src);
      error_call("Not all data could be copied into %s. Proc. aborted.", destiny);
      return -3;
      }
  }

  fclose(dty);
  fclose(src);
  return 0;
}



Hab schon mehrere Gigabytes damit kopiert (vor allem DIVX-Videos), nie ein Fehler aufgetretten.

PS: Funktionen wie error_call oder Kosntante wie MAX_LENGTH sind in main.c definiert.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 09.12.2003 um 21:36 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.12.2003, 21:55 Uhr
~Alfred
Gast


Hi,

kannst du bitte kurz ein Beispiel machen. Hab leider etwas Probleme mit dem Prefix.

Nehmen wir an, die Quelldatei liegt auf /media/dvd/hallo.txt und ich möchte diese nach /home/Alfred/ kopieren.

Wie würde ich das mit fastcp machen?

Vielen Dank im Voraus

Alfred
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.12.2003, 22:15 Uhr
Pablo
Supertux
(Operator)


vielleicht bringt dir das Programmm wenig, weil mein Prog. eine Zeichenkette zum originallen Namen hinzufügt, die eben das "Prefix" ist. Ich habe leider noch nie das Problem gehabt, dass die Datei irgendwie beschädigt ist, und deshlab nur ein Teil kopiert werden kann, aber versuchen kann mans ja doch.


Code:
$ ./fastcp -p "-copy"  /media/dvd/hallo.txt -n  /home/Alfred/



So wäre das Kommando.

Leider akzeptiert mein Programm ein Leeres Prefix nicht. Die Zieldatei wäre dann /home/Alfred/hallo-copy.txt

PS: Wenn das funktioniert, und nur ein Teil kpiert wird, ohne einen Fehler wie Segmentation Fault (Speicherzugriffsfehler) zu verursachen, bitte mir sagen. Auch wenn es Fehler gibt, dann kann ich es weiter für mich entwicklen.

In Prinzip war gedacht, dass du weißt, wie man eine solche copy Funktion macht, deshlab habe ich das geschickt.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 09.12.2003 um 22:17 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.12.2003, 23:04 Uhr
virtual
Sexiest Bit alive
(Operator)


Probiers mal mit dd. Unbedingt Manual lesen!
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
10.12.2003, 20:59 Uhr
~Alfred
Gast


@Virtual:
Vielen Dank für deinen Vorschlag mit dd. Mit diesem Programm bin ich super zurechtgekommen. Es ist wirklich wahnsinnig praktisch. und ich kann es nur jedem weiterempfehlen. Schade, dass es so unbekannt ist. Oder zumindest habe ich noch nie einen gesehen, der es angewendet hat.

@Pablo:
Danke für deinen Quellcode. Da das dd so gut funktioniert hat und ich diese und nächste Woche noch viele Klausuren schreiben muss, werde ich das Ausprobieren deines Programms leider um ca. 1,5 Wochen nach hinten verschieben. Aber ich verspreche dir, dass ich es mir dann nochmal genauer anschauen werde.

mfg

Alfred
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ GNU/Linux ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: