97 lines
1.9 KiB
C
97 lines
1.9 KiB
C
/*
|
|
|
|
Modifications:
|
|
|
|
01.25.94 Joe Holman Created to log errs while copying a single file.
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <windows.h>
|
|
#include <time.h>
|
|
#include "general.h"
|
|
|
|
FILE* logFile;
|
|
|
|
void Msg ( const char * szFormat, ... ) {
|
|
|
|
va_list vaArgs;
|
|
|
|
va_start ( vaArgs, szFormat );
|
|
vprintf ( szFormat, vaArgs );
|
|
vfprintf ( logFile, szFormat, vaArgs );
|
|
va_end ( vaArgs );
|
|
}
|
|
|
|
void Header(argv)
|
|
char* argv[];
|
|
{
|
|
time_t t;
|
|
|
|
Msg ("\n=========== MCOPY =============\n");
|
|
Msg("Log file: %s\n", argv[1]);
|
|
Msg("SrcFile: %s\n",argv[2]);
|
|
Msg("DstFile: %s\n",argv[3]);
|
|
time(&t);
|
|
Msg("Time: %s",ctime(&t));
|
|
Msg("================================\n\n");
|
|
}
|
|
|
|
void Usage()
|
|
{
|
|
printf("PURPOSE: Copies a single file.\n");
|
|
printf("\n");
|
|
printf("PARAMETERS:\n");
|
|
printf("\n");
|
|
printf("[LogFile] - Path to append a log of actions and errors.\n");
|
|
printf("[SrcFile] - Path of src file location.\n");
|
|
printf("[DstFile] - Path of dst file location.\n");
|
|
}
|
|
|
|
__cdecl main(int argc, char * argv[] ) {
|
|
|
|
BOOL b;
|
|
|
|
if (argc!=4) {
|
|
|
|
Usage();
|
|
return(1);
|
|
}
|
|
if ((logFile=fopen(argv[1],"a"))==NULL) {
|
|
|
|
printf("ERROR Couldn't open log file %s\n",argv[1]);
|
|
return(1);
|
|
}
|
|
|
|
Header(argv);
|
|
|
|
SetFileAttributes ( argv[3], FILE_ATTRIBUTE_NORMAL );
|
|
|
|
b = CopyFile ( argv[2], argv[3], FALSE );
|
|
|
|
if ( !b ) {
|
|
|
|
Msg ( "ERROR: CopyFile ( %s, %s ), gle = %ld\n",
|
|
argv[2], argv[3], GetLastError() );
|
|
}
|
|
else {
|
|
|
|
// If no error, set the file attributes to NORMAL.
|
|
//
|
|
|
|
if ( !SetFileAttributes ( argv[3], FILE_ATTRIBUTE_NORMAL ) ) {
|
|
|
|
Msg ( "ERROR: SetFileAttributes on %s, gle = %ld\n", argv[3], GetLastError() );
|
|
}
|
|
}
|
|
|
|
fclose(logFile);
|
|
return(0);
|
|
}
|