powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / vbscript FSO как сохранить файл с полным именем > 255 символов
6 сообщений из 6, страница 1 из 1
vbscript FSO как сохранить файл с полным именем > 255 символов
    #37746532
jack100500
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
' кусок из кода
    set FSO = CreateObject("Scripting.FileSystemObject") 'Подключаем FileSystemObject
'..........................................
inFolder = "C:\1\отсюдакопируем"
moveFolder = "C:\1\сюдакопируем"
set iFolder = FSO.GetFolder(inFolder)
'..................................
    For Each iFile in iFolder.files
               FSO.CopyFile iFile, moveFolder & "\" & RenamedFile(iFile.Name, moveFolder) '  копируем в C:\1\сюдакопируем
    next
'...............................................................

'-------такую функцию добавил...
function RenamedFile(xFile,xFolder)
  set FSO = CreateObject("Scripting.FileSystemObject") 'Подключаем FileSystemObject
  RenamedFile = xFolder & "\" & xFile.shortName
  i = 1
 'проверяем есть ли уже такой файл в папке C:\1\сюдакопируем
 'если существует добавляем индекс _1, _2...
    do while (FSO.FileExists(RenamedFile))         
              RenamedFile = xFolder & "\" & MID(xFile.shortName, 1, len(xFile.shortName)-Mid(xFile.Ext)-1) & "_" & i & "." & xFile.Ext
              i=i+1
    loop
end function



Однако у меня есть большие сомнения по поводу корректности обращения к xFile в функции RenamedFile(xFile,xFolder)
да и плюс ко всему ограничения на длинну строки(

В общем, понимаю, что без ликбеза никак.
Все откликнувшимся, заранее спасибо!
...
Рейтинг: 0 / 0
vbscript FSO как сохранить файл с полным именем > 255 символов
    #37746556
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никак. Для длины имени более 255 символов твоя программа должна быть Unicode и вызывать соответствующие функции, тогда
длина пути будет 32k, иначе больше 255 не дает даже проводник.
Так что забей, в смысле проверяй длину пути перед копированием и ругайся или на каждый чих или пачкой по окончании :)

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vbscript FSO как сохранить файл с полным именем > 255 символов
    #37746567
jack100500
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
функцию поправил вроде работает.. только сохраняет с именем файл~.расширение
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
function RenamedFile(xFile,xFolder)

  set FSO = CreateObject("Scripting.FileSystemObject") 'Подключаем FileSystemObject
  RenamedFile = xFolder & "\" & xFile.shortName
msgbox(renamedFile)

  i = 1
 'проверяем есть ли уже такой файл в папке C:\1\сюдакопируем
 'если существует добавляем индекс _1, _2...
    do while (FSO.FileExists(RenamedFile))
          
              RenamedFile = xFolder & "\" & MID(xFile.shortName, 1, len(xFile.shortName)-len(fso.GetExtensionName(xfile.Name))-1) & _ 
                            "_" & i & "." & fso.GetExtensionName(xfile.Name)

              msgbox(RenamedFile)
               i=i+1
    loop
end function
...
Рейтинг: 0 / 0
vbscript FSO как сохранить файл с полным именем > 255 символов
    #37746585
jack100500
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игорь Горбонос,

дело в том что я уж видел как-то решение подобной задачи. но снова перерыл инет и не нашёл(
там была написана функция, позволяющая копировать с большим количеством символов.

однако я потестил и на более коротких файлах - та же беда.(
значит дело не только в длине имени файла
...
Рейтинг: 0 / 0
vbscript FSO как сохранить файл с полным именем > 255 символов
    #37746631
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: jack100500
> там была написана функция, позволяющая копировать с большим количеством символов.

Для того что-бы копировать с длиной пути в 32k нужно использовать юникодные версии функций работы с файлами. Но в
Windows с этим проблема. Даже проводник не юникодный и поэтому имеет ограничение в 255 символов. Как временную меру
можно использовать короткие имена файлов, что ты и сделал, но, ИМХО, это путь к проблемам.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vbscript FSO как сохранить файл с полным именем > 255 символов
    #37746693
jack100500
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игорь Горбонос,

кажется начинаю понимать. спс!
т.е. можно поставить условие, если меньше 255 символов использовать полное имя. если больше либо = , то короткое.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / vbscript FSO как сохранить файл с полным именем > 255 символов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]