И снова про copy file | |
---|---|
tata Сообщений: 3469 Откуда: Йошкар-Ола Дата регистрации: 23.10.2005 |
Не работает команда
Copy file (addbs(isxpath1)+namefile) to (copypat2) Подозреваемая причина - очень большая вложенность каталогов (изменить это нельзя). Длина переменной copypat2, например, 337 знаков. Попытки использовать WSH и FSO не удались, сообщение ' OLE dispatch code0 не удаётся дождаться процесса... |
Re: И снова про copy file | |
---|---|
of63 Автор Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Переведи имя в формат 8.3, тогда по 11 символов на вложение займет, влезет до 250/12 = 20 вложений примерно
GetShortPathName(S,S,I) && короткое (DOS) имя файла. (LongPath, ShortPath, lenBuffer) |
Re: И снова про copy file | |
---|---|
sphinx Сообщений: 31188 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Есть одна идея... Можно рекурсивно ПЕРЕНОСИТЬ файл все глубже и глубже.... Например, у нас есть файл C:\TEMP\myfile.txt. Его нужно скопировать в C:\1\1\2\3\4...9999\myfile.txt 1) Переносим в C:\1 - теперь файл находится в C:\1 2) Переносим в C:\1\2 - теперь файл находится в C:\1\2 и т.д. Это просто принцип, на практике это, понятное дело, нужно реализовать в виде цикла. Да и то, если более простые способы никак не помогут. А чем хорош - так тем, что можно скопировать/перенести в каталог ОТНОСИТЕЛЬНО текущего, т.е. не надо выписывать/собирать полный длинный путь. ------------------ "Veni, vidi, vici!"(с) Исправлено 1 раз(а). Последнее : sphinx, 22.05.19 22:02 |
Re: И снова про copy file | |
---|---|
sphinx Сообщений: 31188 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Можно этот алгоритм немного оптимизировать - путем двоичного дерева - находим середину этого длинного пути и пробуем скопировать файл туда. Если скопировать не удалось - делим первую половину еще пополам и опять копируем. Если удалось скопировать - делим вторую половину пополам и копируем туда.
Алгоритм будет сложнее, но процессов копирования намного меньше. ------------------ "Veni, vidi, vici!"(с) |
Re: И снова про copy file | |
---|---|
tata Сообщений: 3469 Откуда: Йошкар-Ола Дата регистрации: 23.10.2005 |
Что-то меня смущает в этой идее... Если процесс по какой-то причине не завершится, в папке будут находиться абсолютно не предназначенные для нее файлы. По головке за такое не погладят. |
Re: И снова про copy file | |
---|---|
Перминов Игорь Сообщений: 1591 Откуда: Красная Орловка Дата регистрации: 16.09.2001 |
Попробуйте сделать CMD-файл с командой
А to - содержимое copypat2 Если все нормально будет, то можно такой файл делать и запускать командой RUN
------------------ Без коментариев.. |
Re: И снова про copy file | |
---|---|
of63 Автор Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Вот еще способ - использовать несколько раз SET DEFAULT и относительные пути:
|
Re: И снова про copy file | |
---|---|
Taran Сообщений: 13625 Откуда: Красноярск Дата регистрации: 16.01.2008 |
200 ни о чем не говорит. Ограничение 256 символов на путь к файлу. Вроде как недавно только "разрешили" больше в 10ке. Я попытался пример накидать, но даже каталоги не создаются с общей длиной пути более 256 байт. |
Re: И снова про copy file | |
---|---|
of63 Автор Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Я написал пример, в котором путь к файлу - 400 байт, но фоксом до него добраться можно.
Кстати, по описанию ОС есть такой способ задания длинного пути: \\?\C:\длинный_путь, но фокс (FILE("\\?\...")) не видит файла, даже на простых коротких англоязычных путях... |
Re: И снова про copy file | |
---|---|
TAS Сообщений: 851 Откуда: Москва Дата регистрации: 28.09.2000 |
Посмотрите FileSystemObject!
Пример использования, что-то вроде: loFSO = CREATEOBJECT('Scripting.FileSystemObject') loFSO.CopyFile ("c:\mydocuments\letters\*.doc", "c:\tempfolder\") Хорошую ссыль нашел: celitel.info Исправлено 1 раз(а). Последнее : TAS, 23.05.19 12:00 |
Re: И снова про copy file | |
---|---|
Taran Сообщений: 13625 Откуда: Красноярск Дата регистрации: 16.01.2008 |
FileSystemObject тоже не может создать каталоги с общей длиной пути более 255 байт. Проверял.
|
Re: И снова про copy file | |
---|---|
tata Сообщений: 3469 Откуда: Йошкар-Ола Дата регистрации: 23.10.2005 |
Пробовала и FSO, и WSH. FSO сообщает, что OLE Dispath code 0. ... |
Re: И снова про copy file | |
---|---|
tata Сообщений: 3469 Откуда: Йошкар-Ола Дата регистрации: 23.10.2005 |
Результат ошибка недопустимый параметр #3 Причём убрала вообще по очереди все параметры, оставила только откуда и куда, все равно параметр 3 недопустимый. А так идея интересная, можно было бы через WSH.run запускать. Может ещё из-за русских буковок в путях глючить. Например, в CMD строка выглядит так: Robocopy "G:\Baza\Podtv\pochta\пособие на погребение_ 010003000020190847.pdf" to "g:\baza\картотека сэд\03 звенигово\массивы\05_2019\п-2п\почта\07\zipsedfiles8047\пособие на погребение_ 010003000201908047 подтверждение.pdf" /FFT/ MIR Исправлено 1 раз(а). Последнее : tata, 23.05.19 13:30 |
Re: И снова про copy file | |
---|---|
Penner Сообщений: 4102 Откуда: Muenster Дата регистрации: 26.04.2002 |
пробелы?
------------------ Никогда не откладывайте на завтра, то, о чем можно забыть навсегда |
Re: И снова про copy file | |
---|---|
vk65 Сообщений: 402 Дата регистрации: 08.04.2008 |
у меня с такими путями/именами все работает (ось - win8.1)
|
Re: И снова про copy file | |
---|---|
Burn Сообщений: 5644 Откуда: Днепр Дата регистрации: 02.01.2002 |
В этих путях меньше 260 символов. В WinAPI это ограничение прошито. В десятке, говорят, его можно обойти правкой реестра. 2tata Может эти советы помогут? litl-admin.ru Исправлено 1 раз(а). Последнее : Burn, 23.05.19 15:28 |
Re: И снова про copy file | |
---|---|
vk65 Сообщений: 402 Дата регистрации: 08.04.2008 |
Это понятно. Просто, если это был реальный пример, то проблема не в ограничении на длину пути. |
Re: И снова про copy file | |
---|---|
Taran Сообщений: 13625 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Трете и трете, трете и трете.
Хоть бы кто реальный демо код приложил. С созданием каталогов и файлов и копированием. 10-20 строк. Я сделал, но винда говорит х.н.н. если полная длина пути больше 256/260 символов. По крайне мере под XP так. Ну и о чем говорить? Только о том что: Постановщик задачи (не Таня) фуфел. Это технически невозможно. А так то да. Пенсии еще лет на 10 сдвинут. |
Re: И снова про copy file | |
---|---|
of63 Автор Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Чуть менее чем все программы работать в глубоком вложении, и с глубокими файлами, не будут, и не работают (моя не работате, когда ее загоняют в мои документы, и там далее в глубь, со странными именами папок). Но дальний файл достать можно, если не указывать длинные (полные) имена. Можно все это проверить в черном "Дос" окне, применяя команду cd (она же SET DEFAULT). Попозже попробую.
|
Re: И снова про copy file | |
---|---|
Taran Сообщений: 13625 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Наибулины и как там все в прочих дальше типа ПФР`ах. Решение принять (в отношении народа) кто? - ноль Возразить о непраприльном принятии решении (в отношении народа) - ноль. За зарплатой кто первый? Хули, мы. Я видел в ЦБ Геращенко. Перед восьмым ноям. Может даже за руку здоровались. Я в кабинетах коньяка пивал. Я был в то время "тама". Другая эпоха. |
© 2000-2024 Fox Club  |