Как пользователю указать путь для экспорта?

Тема в разделе "Lotus - Программирование", создана пользователем wowa, 27 дек 2010.

  1. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Call notesEmbeddedObject.ExtractFile( path$ )

    Не хочу хардкодить путь. Нужно чтобы пользователь сам выбирал. Как это сделать?
    Спасибо!
     
  2. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    notesUIWorkspace.SaveFileDialog
     
  3. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    OKEN , спасибо.
    А я до этого пялился на этот notesUIWorkspace долго, но так и не нашел нужного )))
     
  4. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    OKEN , можно задать парочку вопросов?

    1) можно ли как-н по умолчанию получить папку "Мои документы" ? Я посмотрел путь, он очень сложный: C:\Documents and Settings\USER_NAME\My Documents
    А если несколько пользователей работает за компом, что делать?

    2) notesUIWorkspace.SaveFileDialog
    Пользователь выбирает путь, например "C:/Template/"
    Мне нужно кодом создать вложенную дополнительную папку , чтобы путь получился "C:/Template/20101227/"
    Когда я делаю сохранение файла, получается ошибка "Notes error: File cannot be created"

    Это из-за того, что вложенная папка не создана,. Как это можно избежать?
     
  5. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    2) MkDir

    Добавлено
    Они под одной виндовой учёткой работают?
     
  6. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    nvy , спасибо
     
  7. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Ну да, скорее всего...
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    в java есть класс File, кот. создаёт путь и вложенные диры сразу (без гимора с MkDir)
    Код (Text):
                File baseDir = new File("c:\\examples\\embedding");
    File outDir = new File(baseDir, "out");
    outDir.mkdirs();
    юзеровый путь получить - как два палцаабасфальт - %UserProfile%
    прямыть у путе для файло казать %UserProfile%\My Documents\моёВиндовоеФайло.txt
    в темпы пихается соответ. %TEMP%\моёВиндовоеФайло.txt
    ежели темпы не переопределяли в системе - буить в юзеровых темпах
     
  9. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    lmike, уууу , с джавой у меня хреново,
    могу ли я как-н это прикрутить к моему LS агенту? ну там вызвать функцию из джава библиотеки? и т.д.?


    Добавлено: а также вопросик, как быстро проверить есть ли уже по указанному пути данный файлик?
     
  10. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Баян, Dir$
     
  11. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    Java way:
    Код (Text):
    Uselsx "*javacon"
    Function fileExists(fileName As String ) As Boolean
    Dim jSession As JavaSession
    Dim FileClass As JavaClass
    Dim file As JavaObject

    Set jSession = New JavaSession()
    Set FileClass = jSession.GetClass("java/io/File")
    Set file = FileClass.CreateObject("(Ljava/lang/String;)V", fileName)
    fileExists = file.exists()
    End Function
     
  12. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    http://codeby.net/ipb.html?s=&sh...st&p=194719

    Добавлено
    См. в справке дизайнера LS2J. turumbay уже и пример привёл.
     
  13. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Вроде разобрался, но все равно не получается правильно составить вот этот кусок:

    Код (Text):
    File baseDir = new File(%UserProfile%//My Documents");
     
  14. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Надо ли что-то подключать?
     
  15. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    %UserProfile% эта часть для виндового энвиронмента, слэши д.б. обратные (двойные)
    и я не уверен - будет ли трансляция в системные вызовы (а без них не будет создаваться файл) - надо пробывать
    в джава есть наборчик системных переменных http://www.java2s.com/Tutorial/Java/0120__...getProperty.htm
     
  16. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    lmike , спасибо, вроде помогло

    я сделал так:

    Код (Text):
    return System.getProperty("user.home");
    Оно возвращает:

    Ну и дальше я дописываю Мои документы. Поправьте меня если тут что-то может быт ьне так
     
  17. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Uselsx "*javacon"

    Как-то так:
    Код (LotusScript):
    Sub Initialize
    Dim jSession As JavaSession
    Dim FileClass As JavaClass
    Dim userDir As JavaObject
    Set jSession = New JavaSession()
    Set FileClass = jSession.GetClass("java/io/File")
    Set userDir = FileClass.CreateObject("(Ljava/lang/String;)V", "C:\\Docs\\tmp333")
    Call userDir.mkdirs()
    End Sub
     
  18. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    не так может быть:
    - английская версия винды: My Documents
    - windows7: Documents ( могу ошибаца )
     
  19. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Спасибо...Надо проверить.......
     
  20. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Попробуйте штатную временную папку явы. У меня выдаёт что-то вроде "C:\DOCUME~1\USERNAM~1\LOCALS~1\Temp\". Только слэши, возможно, придётся удвоить.

    Код (LotusScript):
        Dim jSession As JavaSession
    Dim sysClass As JavaClass
    Dim jMeth As JavaMethod
    Dim tmpDir As String
    Set jSession = New JavaSession()
    Set sysClass = jSession.GetClass("java/lang/System")
    Set jMeth = sysClass.GetMethod("getProperty", "(Ljava/lang/String;)Ljava/lang/String;")
    tmpDir = jMeth.Invoke(, "java.io.tmpdir")
    Msgbox tmpDir
     
Загрузка...

Поделиться этой страницей