Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Gon

Treue Seele

  • »Gon« ist der Autor dieses Themas

Beiträge: 262

Wohnort: Nahe München

Beruf: Schüler (9. Klasse Gymnasium)

  • Private Nachricht senden

1

15.05.2008, 20:04

Programm, das etwas ausschneidet und woanders wieder einfügt

hi leute,

ich bin auf der suche nach funktionen in c++, mit denen man einen ganzen
ordnerinhalt ausschneidet und in einem anderen ordner wieder einfügt.
beispiel:
der gesamte ordnerinhalt eines ordner namens "Frische_Downloads", in den alle gedownloadeten dateien kommen, soll auf knopfdruck ausgeschnittten werden und in dem ordner "Alte_Downloads" wieder eingefügt werden.
im ordner "Alte_Downloads" befinden sich noch viele andere dateien von älteren dowloads, im ordner "Frische_Downloads" hingegen nur die, die noch nicht in den ordner "Alte_Downloads" verschoben wurden.

gibts in c++ funktionen zum ausschneiden und einfügen von dateien?
wenn ja, wie lauten sie?

vielen dank im voraus,

mfg Gon

Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

2

15.05.2008, 20:07

probiers mal mit den windowds fileapi funktionen...
->CopyFile
->DeleteFile u. Ä.

ansonsten wozu das ausschneiden? kopiert werden sie doch nur im endeffekt... also warum ausschneiden?

3

15.05.2008, 20:26

Zitat von »"Firefly"«

ansonsten wozu das ausschneiden? kopiert werden sie doch nur im endeffekt... also warum ausschneiden?

Ähm, damit der Ordner gleichzeitig geleert/aufgeräumt wird?

@Gon: Wenn das nicht unbedingt in C++ geschehen muß, wäre das mit einer Zeile Code in einer Batch-Datei erledigt. (move)

Ka, ob MoveFile (WinApi) dasselbe erledigt

4

15.05.2008, 21:41

Die variante von firefly ist nicht grad die beste Variante ...

Denn dadurch wird der speciher au der festplatte der normalerweise durch die dateien verbraucht wird, verdoppelt. und wenn dort zum beispiel eine datei von 1 giga oder mehr drauf ist, ist das ziehmlich problematisch!

Anonymous

unregistriert

5

15.05.2008, 21:51

Funktionsübersicht:
Microsoft Developer Network: File Management Functions

Kopieren:
Microsoft Developer Network: CopyFile Function (Windows)
Microsoft Developer Network: CopyFileEx Function (Windows)

Löschen:
Microsoft Developer Network: DeleteFile Function (Windows)

Verschieben:
Microsoft Developer Network: MoveFile Function (Windows)
Microsoft Developer Network: MoveFileEx Function (Windows)
Microsoft Developer Network: MoveFileWithProgress Function (Windows)

Genau lesen (vorallem die remarks-Bereiche!) und für die richtigen Funktionen entscheiden.

Gon

Treue Seele

  • »Gon« ist der Autor dieses Themas

Beiträge: 262

Wohnort: Nahe München

Beruf: Schüler (9. Klasse Gymnasium)

  • Private Nachricht senden

6

16.05.2008, 11:53

danke für eure hilfe! :D
ich meld mich wenns probleme gibt.

Gon

Treue Seele

  • »Gon« ist der Autor dieses Themas

Beiträge: 262

Wohnort: Nahe München

Beruf: Schüler (9. Klasse Gymnasium)

  • Private Nachricht senden

7

16.05.2008, 15:39

bei der movefile funktion muss man doch den pfad der datei, die verschoben werden soll, und den pfad, wohin die datei verschoben werden soll, angeben.
und wenn man die namen der datein nicht weis, da es immer unterschiedlich ist?
man kann ja auch ordner verschieben.
wird dann der ordner mit inhalt oder nur der inhalt verschoben?
ich bräuchte nämlich nur den inhalt und nicht den ganzen ordner.

ich hoffe, jemand kann mir helfen.
vielen Dank im voraus,

mfgon

riCo

Treue Seele

Beiträge: 165

Beruf: Student

  • Private Nachricht senden

8

16.05.2008, 15:51

Die Dateien kannst du mit FindFirstFile() ermitteln. Schau in die MSDN.
Wir leben alle unter dem Sternenhimmel, aber wir haben nicht alle den gleichen Horizont.

Gon

Treue Seele

  • »Gon« ist der Autor dieses Themas

Beiträge: 262

Wohnort: Nahe München

Beruf: Schüler (9. Klasse Gymnasium)

  • Private Nachricht senden

9

18.05.2008, 17:57

ich habs jetzt so gemacht:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <windows.h>
#include <fstream>
#include <iostream>

using namespace std;


int main()
{


  BOOL WINAPI MoveFile("c:\\Programme\\avi1\\*.*", "c:\\Programme\\avi2");


}


doch es kommen folgende meldungen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
Temporäre Dateien und Ausgabedateien für "verschieben - Win32 Debug" werden gelöscht.
--------------------Konfiguration: verschieben - Win32 Debug--------------------
Kompilierung läuft...
verschieben.cpp
c:\dokumente und einstellungen\\eigene dateien\projekte\projekte\verschieben.cpp(12) : warning C4229: Anachronismus verwendet : Modifizierer der Daten werden ignoriert
c:\dokumente und einstellungen\\eigene dateien\projekte\projekte\verschieben.cpp(12) : error C2078: Zu viele Initialisierungen
c:\dokumente und einstellungen\\eigene dateien\projekte\projekte\verschieben.cpp(12) : error C2440: 'initializing' : 'char [18]' kann nicht in 'int' konvertiert werden
        Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
c:\dokumente und einstellungen\\eigene dateien\projekte\projekte\verschieben.cpp(15) : warning C4508: 'main' : Funktion sollte einen Wert zurueckgeben; Ergebnistyp 'void' angenommen
Fehler beim Ausführen von cl.exe.

verschieben.exe - 2 Fehler, 2 Warnung(en)


ich versteh die meldungen nicht....

könnt ihr mir helfen?

vielen dank im voraus.

mfg Gon

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

10

18.05.2008, 18:03

uiuiui, was machst du denn da lustiges :D probiers ma so:

C-/C++-Quelltext

1
2
3
4
5
6
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmd,int nShowCmd) 
{ 
  MoveFile("c:\\Programme\\avi1\\*.*", "c:\\Programme\\avi2");
}

Werbeanzeige