0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
|
|
1 | |
Доступ К Сетевому Диску, Библиотека И Права22.08.2013, 17:51. Показов 12319. Ответов 10
Метки нет Все метки)
(
Ситуация...
Крепит человек файлик с сетевого диска, выбирает через FileOpenDialog, при вставке его в RT-поле вылезает сообщение "File Not Found" Сначала думал путь к файлу длинный, потом начало такое происходить уже с короткими именами. Последний файл был общей длинной 194 символа, не 255 же. Доступ, чаще всего, в папки на сетевых дисках разграничены: одни отделы их видят, другие нет. И вот тут задумался, права при прикреплении программно в RT поле чьи используются? Библиотека, в которой прописан весь год был подписана мной, и сервером была тоже, ошибка все равно есть. Получается что выбирая файл пользователь имеет к нему доступ, а дальнейший код этот файл в упор не видит? Нашел вот такое сообщение: http:///ipb.html?s=&sh...ost&p=52990 Прочел всю ветку, это ад... Всегда считал, что код в лотусе, почти всегда используется от прав пользователя, а по ходу нет. Или я не прав? Прошу помощи, в упор не понимаю. P.S. Я конечно могу сделать на лету простой батник с одной строкой: {copy %1 %2 /Y}, а потом запускать его через Shell, но что-то меня привлекает такое решение, да и пользователи на Mac у нас есть.
0
|
|
22.08.2013, 17:51 | |
Ответы с готовыми решениями:
10
Доступ к сетевому диску Доступ к сетевому диску Пропадающий доступ к сетевому диску Пропал доступ к сетевому диску |
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
|
|
22.08.2013, 18:42 | 2 |
Наверное ты что-то не то делаешь или не договариваешь. Если все локально - то права локального пользователя.
Если через агент на сервере - соответственно права серверного пользователя Еще есть смысл узнать о правах доступа к файлу у пользователя. Встречал такое, что было запрещено копирование с сетевого диска. Набросал на скорую руку Action .SpoilerTarget">Спойлер: Раскрывающийся Текст Код
Sub Click(Source As Button) Dim ws As New NotesUIWorkspace Dim doc As NotesDocument Dim rtitem As NotesRichTextItem Dim object As NotesEmbeddedObject Dim files As Variant Set doc = ws.CurrentDocument.Document files = ws.OpenFileDialog(True, "File List", "", "c:") Set rtitem = New NotesRichTextItem( doc, "Body" ) Forall filelist In files Set object = rtitem.EmbedObject ( EMBED_ATTACHMENT, "", filelist) End Forall Call doc.Save( True, False, True ) End Sub
0
|
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
|
||||||
23.08.2013, 10:45 | 3 | |||||
вот на этой строке и ошибка:
Права к сетевому диску разграничны через Active Directory, думаю проблема тут.
0
|
0 / 0 / 0
Регистрация: 12.11.2009
Сообщений: 882
|
|
23.08.2013, 11:48 | 4 |
Если файл можно из проводника куда-скопировать, то будет цеплятся. Иначе такое когда только права list на каталог\файл.
0
|
0 / 0 / 0
Регистрация: 15.09.2006
Сообщений: 99
|
|
25.08.2013, 06:04 | 5 |
А папки небось по русски обзываются, если ДА, то дели 256 на два - русские буквы 2 байта занимают....
Так что если на "шарах" всё по русски, то и в 194 символа может не влезть
0
|
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
|
|
25.08.2013, 09:31 | 6 |
DuChan
Мне казалось 256 это именно символов. Попробую в unicode перевести при прикреплении, там точно в байтах расчет.
0
|
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
|
||||||
28.08.2013, 19:46 | 7 | |||||
Ну в целом да, права были ни при чем. Проблема в 260 символов WinAPI, хотя я всегда думал что русские символы только в Unicode кодируются 2-мя знаками.
Метод преобразования {\\?\} не работает, ровно до первого пробела сработать может, но не нормализует путь. Теперь копирую файл в локальный темп и тяну оттуда в Lotus, естественно только для win. Создаю bat-файл filesCopy.bat со строкой: {copy %1 %2 /Y} <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Для тех кто не понял что такое %1, %2 и /Y</div></div><div class="sp-body"><div class="sp-content"> /Y - флаг перезаписи, %i - это параметры, которые указываются при запуске bat Парметров может быть от %1 - %9, есть еще параметр %0 - имя bat-файла. При вызове параметры должны разделяться пробелом. Подробнее тут: http://www.windowsfaq.ru/content/view/264/57/ Затем через WShell.Run запускаю и дожидаюсь окончания.
0 - не отображать окно, True - дождаться окончания. Может кому пригодится, хотя..
0
|
0 / 0 / 0
Регистрация: 15.09.2006
Сообщений: 99
|
|
29.08.2013, 06:56 | 8 |
ну уж если Вы используете WSH, может попробывать путь перобразовать к формату "8.3"?
например через "Scripting.FileSystemObject"->ShortPath., правда для сетевых безбуквенных не знаю, заработает или нет - попробуйте... Да и скопировать файл можно: Код
Set FSO = CreateObject("Scripting.FileSystemObject") FSO.CopyFile "C:\*.bat", "A:\", 0 Назначение: копирует один или несколько файлов. Параметры: <Source> - строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы "*" и "?". <Destination> - строка, путь назначения (куда копировать). <Overwrite> - необязательный, булево (число). Перезаписывать существующие файлы, или нет. По умолчанию - True (перезаписывать). Если файл, который нужно перезаписать, имеет атрибут read-only, возникнет ошибка (независимо от установки этого параметра).
0
|
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
|
|
29.08.2013, 09:25 | 9 |
Кстати да, FSO.CopyFile прекрасно работает. А ожидание конца работы будет?
0
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
29.08.2013, 22:30 | 10 |
юникод бывает разный, в винде, русские символы - 2-а знака - это описано (ссылки гуглятся)...
здесь можно сделать исторические отступления ;), но в контексте задачи нет необходимости
0
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
29.08.2013, 22:47 | 11 |
есть всякие "но и если" - http://msdn.microsoft.com/en-us/library/aa...47.aspx#maxpath для длины пути
0
|
29.08.2013, 22:47 | |
29.08.2013, 22:47 | |
Помогаю со студенческими работами здесь
11
как получить доступ в консоле к сетевому диску PsExec. Доступ удаленного компьютера к сетевому диску Как закрыть \ ограничить доступ к сетевому диску c++ builder Подключение к сетевому диску Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |