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

CopyFile() - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
DPS
 Аватар для DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 1
13.11.2011, 00:41     CopyFile() #1
Здравствуйте, помогите мне пожалуйста, если можно, ответить на следующий вопрос.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include"windows.h"
using namespace std;
 
int main()
{
    char filename[40];
            cout<<"Vvedite put k failu"<<endl;
    cin.getline(filename, 39);
 
    int a=CopyFile(filename, "J:\\123.txt", true);      
    if(a)                                                       //
        cout<<"file copy"<<endl;
    else
        cout<<"file not copy"<<endl;
    return 0;
}

Если в качестве первого параметра я указываю путь к файлу, который лежит на том же диске, что и копируемый файл, копирование срабатывает.

Если же я введу путь к файлу, лежащему на другом диске, почему-то копирование не срабатывает (причем если путь к файлу указан в виде строковой константы"D:\\test.txt", копирование работает, но если я введу в консоли D:\test.txt ничего не получится).

Так и должно быть? Пользовался поиском, ничего не нашел. Надеюсь на вашу помощь)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2011, 00:41     CopyFile()
Посмотрите здесь:

CopyFile C++
C++ не работает CopyFile
C++ CopyFile WinAPI
C++ Builder CopyFile()
CopyFile и \\ C++ Builder
CopyFile C++ Builder
CopyFile C++
C++ CopyFile не хочет работать с аргументами команды

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
13.11.2011, 00:47     CopyFile() #2
\ - это специальный символ. После этого символа пишут такие символы как n, t и т.д.
Пример:
cout << "Hello\n world". В этом случае перевод строки.
Т.е. у тебя \t - это табуляция, а не два символа \ и t.
Как тогда написать символ \, если этот символ обозначает спец. символ?
Для этого надо написать \\.
Цитата Сообщение от DPS Посмотреть сообщение
D:\test.txt
Это одно и тоже, что
D: est.txt
А
Цитата Сообщение от DPS Посмотреть сообщение
"D:\\test.txt"
это одно и тоже, что
"D:\test.txt"
DPS
 Аватар для DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 1
13.11.2011, 01:44  [ТС]     CopyFile() #3
Спасибо, про управляющие последовательности я знаю.

Попробую объяснить еще раз...
Вот смотрите:
1)есть файл на диске D, допустим, test.txt
2)мне надо его копировать на диск J, назвав файл, например, 123.txt

Вот если у меня такой код:
C++
1
int a=CopyFile("D:\\test.txt","J:\\123.txt", true);
т.е. первый параметр указан в виде строки, копирование происходит.

Если же путь я буду вводить тот же путь к файлу с клавиатуры (указав в консоли D:\test.txt)
C++
1
2
3
4
        char filename[40];
        cin.getline(filename, 39);
 
        int a=CopyFile(filename, "J:\\123.txt", true);
то копирование не происходит.

Добавлено через 43 минуты
Все, понял. Оказывается, имя файла должно быть на английском языке, русский не воспринимается.
Yandex
Объявления
13.11.2011, 01:44     CopyFile()
Ответ Создать тему
Опции темы

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