
#include <classes/dos/files.h>
#include <classes/dos/arguments.h>
#include <iostream.h>

void main()
{
	try {

		cout << "Datei kopieren mit EASY-OBJECTS\n";

		ArgsC args("FROM/A,TO/A,QUIET/S,BUFFER/N");

		STRPTR kFrom = args.getStr("FROM","");
		STRPTR kTo = args.getStr("TO","");
		BOOL quiet = args.getSwitch("QUIET");
		LONG kBuffer = args.getNumber("BUFFER",10000);

		if (!quiet)
			cout << "Kopiere \"" << (char *) kFrom << "\" nach \"" << (char *) kTo << "\"...\n";

		BufferC buffer(kBuffer);

		FileHandleC fFrom, fTo;
		if (fFrom.open(kFrom,MODE_OLDFILE))
		{
			if (fTo.open(kTo,MODE_NEWFILE))
			{
				while (fFrom.read(buffer.buffer(),buffer.size()) > 0)
				{
					if (fTo.write(buffer.buffer(),buffer.size()) < buffer.size())
						break;
				};
			}
			else {
				if (!quiet)
					cout << "Kann Datei \"" << (char *) kTo << "\" nicht anlegen.\n";
			};
		}
		else {
			if (!quiet)
				cout << "Kann Datei \"" << (char *) kFrom << "\" nicht öffnen.\n";
		};
	}
	catch (RDArgsX)
	{
		cout << "falsche Argumente.\n";
	}
}
