2012-01-01 5 views
1

Работа с W7 и визуальной студией. Моя проблема сегодня в том, что я не могу переименовать внешние файлы вне моего каталога проектов. Функция Rename() работает только для локальных файлов, попыталась скопировать файл, переименовать его и вернуть обратно на свое место, но это не лучший способ сделать это, на мой взгляд. Итак, какие способы вы могли бы предложить для редактирования (переименования, удаления и т. Д.) Внешних файлов на вашем компьютере?C++ переименование внешних файлов

Edit: Переименовать() упоминалось выше, из stdio.h библиотеки: http://www.cplusplus.com/reference/clibrary/cstdio/rename/ Я буду использовать это своего рода имя файла автоматической рандомизатора

+0

Показать код, дать некоторые подсказки о том, где эта функция Rename() от. Если возможно, добавьте значение GetLastError(). – marcinj

+0

Извините, отредактировано добавлено больше информации –

+0

вам следует проанализировать, что содержит errno (это ссылка, которую вы предоставили), я полагаю, что GetLastError() должен быть установлен на ошибку в любом случае. В Windows 7 с включенным UAC вы не сможете изменять все файлы, т. Е. файлы, созданные в каталоге c: \ program, будут помещаться в папку C: \ Users \ ... \ AppData \ Local \ VirtualStore \. Переименование файлов в файлах c: \ на самом деле не работает (из собственного опыта). Вы можете протестировать свое приложение с отключенным UAC, чтобы устранить эту проблему, по крайней мере, для отладки. – marcinj

ответ

1

«Переименовать» функция от Boost.Filesystem/* http://www.boost.org/doc/libs/release/libs/filesystem/ */принимает путь в качестве аргумента: http://www.boost.org/doc/libs/release/libs/filesystem/v3/doc/reference.html#rename

См учебник примеры: http://www.boost.org/doc/libs/release/libs/filesystem/v3/doc/tutorial.html

+0

Откуда вы знаете его переименование() от boost? – marcinj

+1

На самом деле, я не думаю, что «Переименовать» это «переименовать» - вместо этого я предлагаю использовать один из Boost. – Matt

Смежные вопросы