Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
Уважаемые форумчане. Пожалуй это наверное тоже вопрос из нубских, но все же видимо никак до меня не доходящий. Подскажите как говорится кто чем может: Имеется 2 каталога, записанных в переменные типа String. В первом может лежать что угодно, второй как правило пуст. Вопрос банален - необходимо скопировать все содержимое первого каталога во второй. Я уже попробовал разные варианты. В основном все проблемы с этими гадскими char, wchar_t*, без звездочки и т.п. Последний вариант моих стараний выглядит вот так. Правда мне кажется он не подходит т.к. он будет копировать и сам каталог1 в каталог 2, а мне надо копировать только содержимое каталога1. Думаю здесь надо как-то использовать что-то типа перебора файлов с рекурсией. Но вот как это сделать пока понять не могу. Подскажите как это можно реализовать. Я юзаю Embarcadero Rad Studio XE. А вот мой последний неудачный пример - компилятор ругается на то что не может преобразовать wchar_t в char. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2016, 11:58 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
char и wchar_t это разные кодировки. Первая - один байт на символ, вторая - два байта. Ты определись в какой тебе надо, настрой свой проект на нее и про вторую вообще забудь. SHFileOperationA() буква А тут лишняя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2016, 12:45 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
Dima T, В проекте используется wchar_t. Покажите пожалуйста с ним пример. Все гугловские примеры, которые я находил были расчитаны на char ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2016, 12:49 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
Я с char работаю. Готового не дам. У МС есть правило: давать название функции и делать две: ФункцияA() и ФункцияW() где вариант A - для char, W для wchar_t. Но в коде эти буквы не должны присутствовать, просто писать Функция() компилятор сам разбется какую из двух взять. В соответствии с настройками проекта. Убери A, возможно заработает, т.е. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2016, 13:17 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
Dima T, и действительно. Убрал буквы А и ошибок больше нет. Здорово. Интересно а получается мой код будет копировать прям с каталогом вместе или только его содержимое. Хотелось бы только содержимое. Ну сейчас проверим. Спасибо. Отпишусь позже. Получилось вот так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2016, 13:46 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
Ааааа ах...ть. Какая прелесть. Вот это да... И копирует все и каталоги и подкаталоги и файлы и папку лишнюю не создает. Оказывается как я был близок к этому. И несомненно жирную точку поставил Dima T. Спасибо огромное, все заработало... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2016, 13:52 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
dartveider13Отпишусь позже. Думаешь, ком-то интересен твой "Hello World"?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2016, 13:52 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Кому неинтересно, разрешаю не читать:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2016, 13:57 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
dartveider13, обязательно почитай про макросы _UNICODE и UNICODE. Это необходимо знать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2016, 13:57 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
mayton, ок, я запишу себе на полях ежедневника ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2016, 13:58 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
Мда. Недолго музыка играла. Как то странно эта функция копирует через раз. А то и вобще не копирует. Возвращает код 2. По гуглу вроде как надо добавть нулевой символ. Но опять таки все примеры через char. А в моем то случае как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2016, 08:17 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
код теперь выглядит вот так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2016, 08:20 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
dartveider13А то и вобще не копирует. Возвращает код 2. https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx ERROR_FILE_NOT_FOUND 2 (0x2) The system cannot find the file specified. Разбирайся что в параметрах даешь. По хорошему для начала тебе надо на С писать поучиться, а потом уже за WinAPI браться. Все твои вопросы никакого отношения к копированию не имеют. Все из-за незнания языка. Зачем тебе С ? WinAPI доступно из любого языка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2016, 08:24 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
Dima T, Дело не в С. Да и я вроде как писал, что проект рабочий на нем написан, вот и надо его ковырять. Но в любом случае - я разобрался. Просто банально добавил символы '\0' к каталогам и вуаля Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2016, 08:36 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
Просто мне сложно с С в том, что в нем геморно со строками работать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2016, 08:37 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
dartveider13Просто мне сложно с С в том, что в нем геморно со строками работать Не геморно, а не так как в других ЯП. Я об этом и говорю - возьми и поизучай как со строками работать. .c_str() дает строку с нулем на конце, поэтому твое добавление '\0' вообще ничего не изменило. Косяк где-то в другом месте. При ошибке выводи не только код ошибки, но и что было в исходных данных, т.е. FileSource и FileDestan ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2016, 08:47 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
Ну незнаю незнаю... Прогоняю уже по ...цатаму разу. Все хорошо копировать началось. В гугле там как раз про 2 нуля писали. Вот и получается 1 я добавляю руками, второй добавляет c_str(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2016, 08:52 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
Dima T, вобщем спасибо тебе еще раз отдельное по буквам А:) Уже я попробовал и с подкаталогами копировать и всяко разно. Вроде все копируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2016, 08:55 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
dartveider13В гугле там как раз про 2 нуля писали. а гугл то зачем? в MSDN чёрным по белому всё написано - https://msdn.microsoft.com/ru-ru/library/windows/desktop/bb759795(v=vs.85).aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2016, 09:03 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
И правда два нуля надо, не знал. https://msdn.microsoft.com/ru-ru/library/windows/desktop/bb759795(v=vs.85).aspx pFrom ... A pointer to one or more source file names. These names should be fully qualified paths to prevent unexpected results. ... Although this member is declared as a single null-terminated string, it is actually a buffer that can hold multiple null-delimited file names. Each file name is terminated by a single NULL character. The last file name is terminated with a double NULL character ("\0\0") to indicate the end of the buffer. Если так, то должно помочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2016, 09:13 |
|
||
|
Банальное копирование содержимого каталога в другой
|
|||
|---|---|---|---|
|
#18+
Ну так и получилось:) Все таки я думаю мой пост будет не бесполезен... Все таки мне тяжеловато было воспринимать англ доку. А примеры в гугле по большей части полны шлака. Как говорится век живи век учись ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2016, 09:17 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39222329&tid=2018540]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
68ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 177ms |

| 0 / 0 |
