Длинные пути в имени файла-вложения

  • Автор темы Автор темы Klido
  • Дата начала Дата начала
ежели не отловить ошибку (при нажатии скрепки)
да скрепка - мелочь, можно перевесить на код добавление аттача...
Имеем ситуацию - ОС позволяет доступными средствами создать файл с длинной пути имени более 255 и содержащим всякие не-буквоцифры (точка, запятая, воскл. знак - наиболее неприятные). Лотус не умеет сам такое обработать в разных случаях. Очевидно, функция должна хотя бы получать файл на уровне системы и копировать его в tmp с норм. именем.
Не может быть, чтоб ещё такое никто не написал :) Нет ресурсов прямо сейчас решать самому :( Хотя, очевидно, придется....
 
класть в зип - полюбасу выгоднее
можно сохранять пути, а можно - нет
как получать имена файлов из системы - выше диалогбокс (его несколько поменять)
др. словами - отказ от нотусёвого выбора файлов вовсе
 
Зря. "Проводник" же нормально работает с длинными путями
проводник это чисто мелкософтовская прога, все сторонние проги тоже спотыкаются на длинных именах

вот читаю вас и думаю, не отчасти ли из-за этого ИБМ создать DAOS - там все имена файлов с одинаковой длинной имени :)

Разумное выход тут только в обьяснении этой ситуации пользователю или перевод его на 8.5+(винда7 или убунта)
 
и что - что лотусина сжимает...
тестаните:

если пропрёт - почему не зиповать?!
трабла с юзерами пропадёт
 
как получать имена файлов из системы - выше диалогбокс (его несколько поменять)
"несколько" - это полностью? :rolleyes: подскажет мож кто какую функцию вместо SHBrowseForFolder надо юзать, чтоб получить файл, а не каталог - что-то не вижу в перечне подходящей.... Или надо искусственно - сначала католог, а потом там уже перечень файлов выводить любым способом?
 

Or ... к флагу , этого значения сделать
 
Поэкспериментировал с WinXP. Создал кучу вложенных папок и файл в последней, так, чтобы полное имя файла было 255. Затем увеличил длину имени папки предпоследнего уровня. Папка последнего уровня проводником открываться перестала! Уж если "родной" проводник клинит в данной ситуации, что можно хотеть от Лотуса!?
Попробовал джавовый JFileChooser — результат тот же.
Есть подозрение, что рисование своего диалога выбора файла делу не поможет, поскольку ограничение заложено в апишных функциях чтения каталогов/файлов.
Выход вижу только один — строить пользователей, объяснять им, что делать при возникновении данной ошибки. Можно лично :rolleyes:, можно выводом внятного сообщения об ошибке с рекомендацией сделать то-то.
 
nvy
стоит обратить внимание - что пользователи уже создали эти файлы и с ними работают (судя по тому что выбрать могут)
и обсуждаем именно эту ситуацию
 
nvy
стоит обратить внимание - что пользователи уже создали эти файлы и с ними работают (судя по тому что выбрать могут)
и обсуждаем именно эту ситуацию
Если пользователи могут выбрать файлы, то скорее всего дело не в длине полного имени файла, а в каких-то спецсимволах, которые Лотус не понимает. Тут нужно анализировать конкретные файлы и пути к ним.
 
Тут нужно анализировать конкретные файлы и пути к ним
скорее всего так... путь берем через SH, копируем файло в tmp, аттачим - и всё....

добавил пример с выбором фолдера - форма стала грузиться 10-15 секунд.... как-то неприятно... унас объявленные внешние библиотеки подгружаются сразу или в момент выполнения?
 
странно, у меня есть форма (диалог) - открывается моментально (ссылка на либу - в нёй)
код живёт в отдельной либе
диалог открывается в агенте
 
появилась ещё одна проблема... неясно связана ли с длиной пути к файлу... - - автопереименование аттачей при вставке в рт-лайт поле типа аттачменты.... переименовываются в 8-цифровое имя со старым расширением (видно в поле $FILE и в повторе внизу документа), в самом поле нормальные имена, все аттачи открываются нормально....
наблюдал кто такое??
 
Если пользователи могут выбрать файлы, то скорее всего дело не в длине полного имени файла, а в каких-то спецсимволах, которые Лотус не понимает. Тут нужно анализировать конкретные файлы и пути к ним.
Когда-то делал "компиляцию", там внизу есть функция CorrectFileName, в которой и обрубаются левые символы:
JavaScript:
//Remove inadmissible symbols (from wisgest)
function correctFileName(pFileNameOnly) {
   pFileNameOnly = pFileNameOnly.replace(/\t/g, " ");      //валим табуляции, т.к. диалог с ними иногда просто не отображается
   pFileNameOnly = pFileNameOnly.replace(/  /g, " ");      //убираем повторяющиеся пробелы
   return pFileNameOnly.replace(/[\\\/:\*\?"{}<>\|]/g, "");
}
Возможно Лотус ещё накладывает какие-то свои, но у меня это всегда работало; может для Лотуса придётся ещё что-то добавить.. Я бы убирал повторяющиеся пробелы, imho, и лучше было бы их заменять на подчёркивания..
 
Последнее редактирование:
вспомнил ToxaRat и его пост
https://codeby.net/threads/33710.html?vi...st&p=158551

ДАОС я включил на серваке, а базу ещё не подключал туда.... Не подготавливает ли уже "предусмотрительное" Домино мои аттачи для будущего помещения в ДАОС, заранее переименовывая их в "одинаковый" размер имени??? :)
 
Klido
я там "язвил" про имена тикетов - в которых содержится твой аттач и его имя :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!