Здравствуйте, x64, Вы писали:
x64>Он сам хочет, очевидно же.
Можно запустить копирование отдельным потоком и из показометра процесса копирования периодически обновлять информацию о размере конечного файла, сравнивая его с исходным. На сколько это замедлит копирование .
... << My edition based on RSDN@Home 1.2.0 alpha 4 rev. 1476 >>
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
S>Можно запустить копирование отдельным потоком и из показометра процесса копирования периодически обновлять информацию о размере конечного файла, сравнивая его с исходным. На сколько это замедлит копирование.
Что за ересь вы тут советуете?! На костры вас всех, оптом!
Здравствуйте, x64, Вы писали:
x64>Что за ересь вы тут советуете?! На костры вас всех, оптом!
А что штатное копирование проходит без выделения места с постепенным увеличением размера файла. Оно даже не проверяет наличие свободного места — копировали, копировали, копировали, ой не влезло. Зато без граблей на копирование атрибутов и прав для каждого частного случая родителькой директории.
... << My edition based on RSDN@Home 1.2.0 alpha 4 rev. 1476 >>
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
JR>2 означает, что функция не может найти файл, имя которого Вы ей передали. Либо ошибка в имени, либо такого пути/файла действительно нет.
Т.е ANSI версия путь или имя воспринимает нормально, а юникодовая версия, которая по идеии наоборот должна свести эти проблемы к минимуму,
путь или имя нормально воспринимать не хочет. Я ведь названия файлов и пути не менял. Использовал такие же как и в ANSI. Можно как-то узнать,
какой путь или название файла ей именно не нравиться? Причем для тестирования я использовал в названиях только латиницу.
JR>Аттрибуты файла к этой ошибке отношения не имеют. Это ошибка от системы безопасности, она означает, что у вызывающего функцию юзера нет необходимых прав на доступ к данному файлу. Это может означать как фактическое отсутствие таких прав в дескрипторе защиты файла (если ошибка возвращена при попытке открыть или создать файл), так и то, что при открытии файла необходимые для работы данной функции права не были запрошены (если ошибка — результат вызова функций типа ReadFile, WriteFile etc).
Тогда я ничего не понимаю. Почему тогда например 5 раз файл копируется нормально, а начиная с 6-го раза у юзера права уже отсутствуют? И отсутствуют до тех пор пока я юзер не удалит конечный файл. После этого файл опять можно несколько раз скопировать успешно.
Может быть у Вас вкралась какая-нибудь неточность в импорте функций или их вызове? Покажите код, который приводит к ошибке, так будет проще, к тому-же можно будет опробовать при необходимости.
D>Можно как-то узнать, какой путь или название файла ей именно не нравиться?
В данном случае — разве что постепенным усечением имени и проверкой существования директорий, например вызовом FindFirstFile.
Всё-таки лучше-бы посмотреть на код. Есть подозрение, что это вообще ошибки не от Вашего кода
"Нормальные герои всегда идут в обход!"
Re[9]: Копирование файла
От:
Аноним
Дата:
08.10.10 15:03
Оценка:
Здравствуйте, Dan123, Вы писали:
D>Тогда я ничего не понимаю. Почему тогда например 5 раз файл копируется нормально, а начиная с 6-го раза у юзера права уже отсутствуют? И отсутствуют до тех пор пока я юзер не удалит конечный файл. После этого файл опять можно несколько раз скопировать успешно.
потому что на исходном файле атрибут стоит readonly. сам нарвался
JR>To Dan123: Извините, я ввёл Вас заблуждение — действительно, при аттрибуте readonly возвращается ошибка 5.
Ничего страшного В споре рождается истина. Просто это тема для меня вообще нова. Понадобилось решение, шаг туда — грабли, шаг сюда — грабли.
В первый момент находишь решение, потом бац — косяк, находишь второе решение, бац — опять косяк. Через какое-то время возвращаешься к первому решению и находишь
обходные пути. Поскольку я в этой теме полный нуль, то любые советы могут натолкнуть на правильный путь. Поэтому я внимательно читаю все сообщения, и надеюсь для себя со временем найти оптимальное решение. Не успеваю отвечать во все ветки, поэтому здесь хочу всем выразить благодарность за активную помощь!!!
JR>To Dan123: Извините, я ввёл Вас заблуждение — действительно, при аттрибуте readonly возвращается ошибка 5.
Кстати, такая же фигня происходит если файл имеет атрибут "Системный". Получается, если например исходный файл имеет
атрибут "Системный" или "только для чтения", то первоначально я его конечно скопирую, а при повторном копировании нарвусь на проблемы.
отсюда и следует, или надо конечный файл предварительно удалять, или изменять его атрибуты. Что лучше — не знаю. Пока еще не экспериментировал
с другими атрибутами, например "Скрытый".
Здравствуйте, Dan123, Вы писали:
_FR>>Каковы размеры буфера и файла?
D>Буфер 2 мегабайта, файл 700 мегабайт.
А сколько оперативки? Поставьте, для интереса хотя бы, буфер в гигабайт. Потом найдите какое-нить кино в HD и покопируйте его с буфером в 4Г. Будет ли разница?
Help will always be given at Hogwarts to those who ask for it.