Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ и WinAPI
Войти
Регистрация
Восстановить пароль
 
Mr. Hat
2 / 2 / 7
Регистрация: 17.02.2012
Сообщений: 68
#1

Почему не работает функция MoveFile? - C++ WinAPI

14.01.2013, 22:22. Просмотров 1328. Ответов 1
Метки нет (Все метки)

Долго искал в хелпах, как переименовывать файлы, но результатов ноль. Оказалось, что с файлами в visual c++ можно делать все что угодно, даже такие вещи, о которых я и не подозревал, и смысл которых от меня ускользает. Единственное, что нельзя - это переименовывать. Можно, конечно, скопировать в ту же директорию и удалить оригинал, но не хочу заставлять компьютер записывать и стирать файл, когда нужно просто сменить название. Самое близкое, что удалось найти - функция MoveFile, но она почему-то не работает (см. код ниже). Функция копирования из того же раздела хелпа работает нормально, так что файл лежит там, где надо. Пробовал указывать полные пути и указывать во втором аргументе другую директорию, но все это танцы с бубном, и они не помогли, к сожалению.
http://www.cyberforum.ru/cpp/thread1114139.html

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "string_works.h"
#include <Windows.h>
int main() {
    
if(MoveFile("1.txt","2.txt"))
    cout << "success" << endl;
else
    cout << "fail" << endl;
keep_window_open();
}
 
#include "string_works.cpp"
Вот, собственно, почти весь код. В string_works.h ничего интересного нет (кстати, обязательно было включать string_works.cpp инклудом в этот файл? Я раньше думал, что достаточно добавить его в проект (у меня MVS 2010) и включить string_works.h со всеми прототипами, но так появляются ошибки на этапе редактирования связей). Консоль выдает "fail", в чем проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2013, 22:22
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Почему не работает функция MoveFile? (C++ WinAPI):

Проблемы с MoveFile
Чтобы не мудрить вставлю весь. Уже не знаю какие параметры для MoveFile...

Почему функция gets опасная?
Компилирую программу с помощью G++, и компилятор пишет: warning: the...

Почему функция, обрабатывающая хуки, должна быть в dll?
насколько я знаю, если ставишь глобальные хуки, нужно делать так, чтобы...

Функция MapAndLoad() работает с dll-файлом, не работает с exe-файлом
Доброго времени суток. Объясните, почему программа #include &lt;windows.h&gt;...

Почему не работает SetFilePointer
Итак код: int Error, err_SetFilePointer; if (SetFilePointer(Device,...

1
Vourhey
Почетный модератор
6490 / 2264 / 187
Регистрация: 29.07.2006
Сообщений: 12,534
14.01.2013, 22:27 #2
Цитата Сообщение от Mr. Hat Посмотреть сообщение
Единственное, что нельзя - это переименовывать.
Переименование это именно "перемещение с новым именем".
Цитата Сообщение от Mr. Hat Посмотреть сообщение
но она почему-то
А для кого GetLastError и FormatMessage придумали?

Добавлено через 2 минуты
Цитата Сообщение от Mr. Hat Посмотреть сообщение
что с файлами в visual c++ можно вытворять все что угодно
Какое отношение Visual C++ имеет к winapi? Это апи ОС. На любом языке там можно с файлами "вытворять все что угодно" в пределах допустимых файловой системой и ОС.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2013, 22:27
Привет! Вот еще темы с решениями:

Почему не работает кнопка ?
#include &quot;stdafx.h&quot; #include &lt;windows.h&gt; LRESULT CALLBACK WndProc(HWND...

Почему не работает LoadBitmap
Добрый вечер.Написал по книжке код.Должен грузить картинку в окно.Должен...

Почему не работает компилятор
ввожу самый простой код, а он мне выдает: 1&gt;------ Построение начато: проект:...

Почему не работает MoveToEx?
case WM_PAINT: hDc = BeginPaint(hWnd, &amp;ps); ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru