Форум программистов, компьютерный форум CyberForum.ru

Перемещение файла - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.90
shtopor20
31 / 20 / 0
Регистрация: 21.05.2010
Сообщений: 301
06.11.2010, 12:58     Перемещение файла #1
Здраствуйте, подскажите как написать программу которая перемещала бы фаил из одной папки в другую, тоесть у меня есть две папки 1 и 2 в папки 1 есть фал в формате dat который надо заменить на фаил из папки 2. Как это реализовать? Я думал просто переписать можно но что то сомневаюсь что будет правильно работать если переписывать файлы
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2010, 12:58     Перемещение файла
Посмотрите здесь:

C++ Запрос файла и перемещение слов.
Перемещение курсора C++
Перемещение файлов C++
C++ Автоматизация(перемещение)
Перемещение масива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
06.11.2010, 13:26     Перемещение файла #2
просто переписать, а потом к первому файлу применить remove()

C
1
2
3
4
5
6
7
void copyfile(FILE *ifp, FILE *ofp)
{
    int c;
 
    while ((c = getc(ifp)) != EOF)
        putc(c, ofp);
}
быстрее работает fread() + fwrite()
shtopor20
31 / 20 / 0
Регистрация: 21.05.2010
Сообщений: 301
06.11.2010, 16:40  [ТС]     Перемещение файла #3
прикольо, а рабочего примера нету?

Добавлено через 16 минут
Поидеи достаточно написать
C
1
 CopyFile ("C:\Пример\ИсходныйФайл.txt","C:\КонечныйФайл.txt")
Так? Или где то ошибся? и какие #include надо к этому прописывать?
Игор
 Аватар для Игор
2 / 2 / 0
Регистрация: 04.10.2009
Сообщений: 32
06.11.2010, 16:43     Перемещение файла #4
Интересно. Сейчас подожди попробую сделать рабочий пример...
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
06.11.2010, 17:05     Перемещение файла #5
shtopor20, нет, вы ошибаетесь. Предложенная функция принимает не строки, а указатели на потоки. Т.е. где-то в главной функции вы должны открыть два потока, привязать их к определённым файлам, и уже эти созданные указатели передавать в функцию.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
06.11.2010, 17:12     Перемещение файла #6
MoveFile же

Добавлено через 2 минуты
C
1
2
3
4
5
6
7
8
9
10
#include <windows.h>
 
int main(){
  TCHAR file1[] = _T("c:/1.txt"), file2[] = _T("c:/1/1.txt");
  if( MoveFile( file1, file2 ) ){
    _tprintf( _T("ok\n") );
  }else{
    _tprintf( _T("error move\n") );
  }
}
Игор
 Аватар для Игор
2 / 2 / 0
Регистрация: 04.10.2009
Сообщений: 32
06.11.2010, 17:33     Перемещение файла #7
Цитата Сообщение от accept Посмотреть сообщение
просто переписать, а потом к первому файлу применить remove()
Код C
void copyfile(FILE *ifp, FILE *ofp)
{
int c;
while ((c = getc(ifp)) != EOF)
putc(c, ofp);
}
быстрее работает fread() + fwrite()
Цитата Сообщение от shtopor20 Посмотреть сообщение
прикольо, а рабочего примера нету?
Добавлено через 16 минут
Поидеи достаточно написать
Код C
1
CopyFile ("C:\Пример\ИсходныйФайл.txt","C:\КонечныйФайл.txt")
Так? Или где то ошибся? и какие #include надо к этому прописывать?
У меня оба этих кода не работуют.

Добавлено через 2 минуты
Цитата Сообщение от alex_x_x Посмотреть сообщение
MoveFile же
А на чём вы компилируете? У меня что-то совсем наоборот:
Код
Êîìïèëÿòîð: Default compiler
Building Makefile: "C:\DevCpp\C\3\Makefile.win"
Âûïîëíåíèå  make...
make.exe -f "C:\DevCpp\C\3\Makefile.win" all
gcc.exe -c main.c -o main.o -I"C:/DevCpp/include"   
main.c: In function `main':
main.c:4: error: invalid initializer
main.c:4: error: invalid initializer
make.exe: *** [main.o] Error 1
shtopor20
31 / 20 / 0
Регистрация: 21.05.2010
Сообщений: 301
06.11.2010, 18:38  [ТС]     Перемещение файла #8
У меня в коде ошибка в 4-й строке
C++
1
2
3
4
5
6
7
8
9
10
#include <windows.h>
 
int main(){
  TCHAR file1[] = _T("c:/1.txt"), file2[] = _T("c:/1/1.txt");
  if( MoveFile( file1, file2 ) ){
    _tprintf( _T("ok\n") );
  }else{
    _tprintf( _T("error move\n") );
  }
}
Игорь98
34 / 34 / 3
Регистрация: 12.02.2010
Сообщений: 239
06.11.2010, 20:17     Перемещение файла #9
Дык конечно, путь к файлу, на языке С++, прописывается вот так:
C++
1
C:\\Пример\\ИсходныйФайл.txt
shtopor20
31 / 20 / 0
Регистрация: 21.05.2010
Сообщений: 301
06.11.2010, 20:54  [ТС]     Перемещение файла #10
всеравно ошибка
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.11.2010, 04:06     Перемещение файла #11
Цитата Сообщение от shtopor20 Посмотреть сообщение
прикольо, а рабочего примера нету?

Добавлено через 16 минут
Поидеи достаточно написать
C
1
 CopyFile ("C:\Пример\ИсходныйФайл.txt","C:\КонечныйФайл.txt")
Так? Или где то ошибся? и какие #include надо к этому прописывать?
не, copyfile() сработает по-разному copyfile(ifp, stdout), copyfile(stdin, ofp), copyfile(stdin, stdout)
тогда как CopyFile() ограничена и ещё проверку, что файл переписался без ошибок, нужно встраивать прямо в функцию, тогда как copyfile() (это пример из K&R2) делает только своё дело, всё остальное проводится снаружи
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2010, 06:26     Перемещение файла
Еще ссылки по теме:

Перемещение курсора C++
C++ Перемещение элемента
C++ Перемещение змейки

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
07.11.2010, 06:26     Перемещение файла #12
C++
1
2
3
4
5
6
7
8
9
10
#include <cstdlib>
#include <string>
 
int main(){
  std::string src("sourcefile.name");
  std::string dst("destinationfile.name");
  std::string cmd = "copy " + src + " " + dst;
  system(cmd.c_str());
  return 0;
}
Yandex
Объявления
07.11.2010, 06:26     Перемещение файла
Ответ Создать тему
Опции темы

Текущее время: 08:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru