Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > char[] в CopyFile


Автор: aikidzin 4.6.2012, 12:34
Добрый день. Не получается выполнить копирование файла с использованием CopyFile
проект собирается как Win32 ConsoleApp. Собирается с использованием много байтовой кодировки.


Код

  char filepath[200];
  char str[200];

  strcpy(filepath,argv[2]);
  strcpy(str,"D:\\test\\1.c");

  CopyFile(filepath,str,0);

  err = GetLastError();  // вылезает ошибка 123


Если вмемто argv[2] записать "D:\\test\\2.c", то копирование происходит. В чем может быть проблема, подскажите пожалуйста.

Автор: hawk3500 4.6.2012, 14:12
прочистите:
memset(filepath,0,200);
memset(str,0,200);

Автор: vol4ek 4.6.2012, 14:24
BOOL CopyFile(
     LPCTSTR lpExistingFileName,
// Указатель на файл, который надо копировать
     LPCTSTR lpNewFileName, 
// Указатель на имя файла, куда надо копировать
     BOOL bFailIfExists 
//если указать true, то в случае существования такого файла,
      
// произойдет ошибка, если false - то существующий файл будет перезаписан.
);

здесь написано, что параметры функции могут быть char[] ?

Автор: borisbn 4.6.2012, 14:53
Цитата(aikidzin @  4.6.2012,  12:34 Найти цитируемый пост)
Если вмемто argv[2] записать "D:\\test\\2.c", то копирование происходит

как вызываешь программу ? если просто 
Цитата
pro.exe file1.c

, то нужно не argv[2], а argv[ 1 ]

Автор: Dem_max 4.6.2012, 18:51
А что сложно самому проверить, написав 1 строку ?
OutputDebugString(argv[2]);

Автор: aikidzin 8.6.2012, 12:10
Прблему решил. Всем спасибо за помощь.
Аргументы для программы брались из текстового файла и в argv[2] попадал символ возврата каретки. Такой вот косяк с моей стороны. Убрал символ - все заработало как положено.
с char CopyFile работет нормально. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)