0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
1

Доступ К Сетевому Диску, Библиотека И Права

22.08.2013, 17:51. Показов 12410. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ситуация...
Крепит человек файлик с сетевого диска, выбирает через 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.08.2013, 17:51
Ответы с готовыми решениями:

Доступ к сетевому диску
Есть удаленный сервер на котором имеем розшареную папку. На пользовательских машинах эта папка была подключена как сетевой диск. Все...

Доступ к сетевому диску
У меня, допустим, много машин с разными ОС, хр, виста, 7. все находятся в одной рабочей группе. но к сетевому диску большинство доступ...

Пропадающий доступ к сетевому диску
Господа форумчане помогите советом. Есть сетка на 40+ компов, у всех все нормально кроме одного мистического компа На компе установлена...

10
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
22.08.2013, 18:42 2
Наверное ты что-то не то делаешь или не договариваешь. Если все локально - то права локального пользователя.
Если через агент на сервере - соответственно права серверного пользователя
Еще есть смысл узнать о правах доступа к файлу у пользователя. Встречал такое, что было запрещено копирование с сетевого диска.

Набросал на скорую руку Action

.SpoilerTarget">Спойлер: Раскрывающийся Текст


Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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
вот на этой строке и ошибка:

LotusScript
1
Set object = rtitem.EmbedObject ( EMBED_ATTACHMENT, "", filelist)
Нет файла и все, выполняется из кнопки на представлении.
Права к сетевому диску разграничны через 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 запускаю и дожидаюсь окончания.

LotusScript
1
ReturnCode = WShell.Run({filesCopy.bat} & { "} & FilePath & {" } & newFilePath, 0, True)
кавычки для FilePath нужны если там есть пробелы, без них не копирует.
0 - не отображать окно, True - дождаться окончания.
Может кому пригодится, хотя..
0
0 / 0 / 0
Регистрация: 15.09.2006
Сообщений: 99
29.08.2013, 06:56 8
ну уж если Вы используете WSH, может попробывать путь перобразовать к формату "8.3"?
например через "Scripting.FileSystemObject"->ShortPath., правда для сетевых безбуквенных не знаю, заработает или нет - попробуйте...

Да и скопировать файл можно:

Code
1
2
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile "C:\*.bat", "A:\", 0
CopyFile(<Source>,<Destination>,<Overwrite>)
Назначение: копирует один или несколько файлов.
Параметры:
<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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.08.2013, 22:47
Помогаю со студенческими работами здесь

Пропал доступ к сетевому диску
Добрый день. Проблема в следующем... Стоит ПО на компьюетере которое пишет на диск с вебкамер (dlink) и был подключен как сетевой...

как получить доступ в консоле к сетевому диску
как получить доступ в консоле к сетевому диску smb://artisoft/D монтирую заново smbmount \\\\artisoft\\D /mnt/net/ след ошибка ...

PsExec. Доступ удаленного компьютера к сетевому диску
windows xp, доменная сеть университета psexec \\student1-123-1 cmd /c net use i: \\ssu-datacenter\install /user:university\Quaker...

Как закрыть \ ограничить доступ к сетевому диску c++ builder
Как программно закрыть \ ограничить доступ к сетевому диску в c++ builder 6?

Подключение к сетевому диску
Здравствуйте. У меня такой вопрос, поставил Windows 7, все настроил вроде, создал диск с общим доступом. Пробую подключится к этому диску...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
Циклы for в Python
py-thonny 17.03.2025
Существует множество ситуаций, когда нам нужно выполнить одно и то же действие несколько раз. Цикл for в Python — настоящий рабочий конь для большинства программистов. Если вам нужно пройтись по всем. . .
Предсказание ветвлений - путь к высокопроизводи­тельному C++
NullReferenced 17.03.2025
В высокопроизводительном программировании на C++ каждый такт процессора на счету. Когда речь заходит о разработке систем с низкой задержкой — будь то высокочастотная торговля, обработка потоковых. . .
Паттерн CQRS в C#
UnmanagedCoder 17.03.2025
Создание сложных корпоративных приложений часто требует нестандартных подходов к архитектуре. Один из таких подходов — паттерн CQRS (Command Query Responsibility Segregation), предлагающий простую,. . .
Паттерн Цепочка ответственности в C#
UnmanagedCoder 17.03.2025
Цепочка ответственности — это поведенческий паттерн проектирования, который позволяет передавать запросы последовательно по цепочке потенциальных обработчиков, пока один из них не обработает запрос. . . .
Создаем микросервисы с NestJS, TCP и Typescript
run.dev 17.03.2025
NestJS — фреймворк, который значительно упрощает создание серверных приложений на Node. js. Его прелесть в том, что он комбинирует концепции ООП, функционального программирования и предлагает. . .
Гексагональная архитектура со Spring Boot
Javaican 17.03.2025
Если вы когда-нибудь сталкивались с ситуацией, когда внесение простых изменений в базу данных или пользовательский интерфейс заставляло вас переписывать весь код, то вы точно оцените элегантность. . .
Позиционировани­е Kafka Consumer и Seek-операции
Javaican 17.03.2025
Что же такое Consumer Seek в Kafka? По сути, это API-метод, который позволяет программно указать, с какой позиции (offset) Consumer должен начать или продолжить чтение данных из партиции. Без этого. . .
Python NumPy: Лучшие практики и примеры
py-thonny 17.03.2025
NumPy (Numerical Python) — одна из ключевых библиотек для научных вычислений в Python. Она превращает Python из просто удобного языка общего назначения в среду для проведения сложных математических. . .
Java Micronaut в Docker: контейнеризация с Maven и Jib
Javaican 16.03.2025
Когда речь заходит о микросервисной архитектуре на Java, фреймворк Micronaut выделяется среди конкурентов. Он создан с учётом особенностей облачных сред и контейнеров, что делает его идеальным. . .
Управление зависимостями в Java: Сравнение Spring, Guice и Dagger 2
Javaican 16.03.2025
Инъекция зависимостей (Dependency Injection, DI) — один из фундаментальных паттернов проектирования, который радикально меняет подход к созданию гибких и тестируемых Java-приложений. Суть этого. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru