【问题标题】:LibreOffice basic command to open a folder path in Linux在 Linux 中打开文件夹路径的 LibreOffice 基本命令
【发布时间】:2021-03-27 23:03:17
【问题描述】:

我有一个在 Windows 中创建的宏电子表格,它获取电子表格当前所在的文件夹路径,然后在该目录中打开一个文件夹。

我使用命令shell ("C:\Windows\explorer.exe",1,FolderPath),其中“FolderPath”是要打开的最终文件夹路径的字符串。在 Linux 中是否有与此命令等效的命令,当我使用它时,MAC OS 也是如此?

【问题讨论】:

  • 您说的是目录中的文件夹,这可能不是您的意思。请注意,在 Unix、BSD 和 Linux 上,它们也是“目录”,而不是 Windows 的“文件夹”概念,这不是一回事。
  • 您必须原谅我对命名法缺乏了解,因为我在这方面有点新手。我一直将“目录”和“文件夹”理解为同一个东西。本质上,我在这里尝试做的是使用 gui 资源管理器打开一个目标目录,因此用户不必手动到达那里。希望能解决问题。
  • 我仍然无法弄清楚您要达到的目标。不,很明显,您需要为用户打开文件管理器,这是在当前操作系统中使用的,并向用户显示特定文件夹(目录)的内容。但为什么?为了什么?用户在这个新窗口中究竟应该看到什么(反之亦然 - 看不到)?他接下来要做什么?单击其中一个文件以在同一个 LibreOffice 中打开它?其他的?

标签: libreoffice-basic


【解决方案1】:

首先,想办法找出你的宏在哪个操作系统上运行(提示:查看Help

Function OSName() As String
Dim keyNode As Object ' com.sun.star.configuration.ConfigurationAccess
    GlobalScope.Basiclibraries.LoadLibrary("Tools")
    keyNode = Tools.Misc.GetRegistryKeyContent("org.openoffice.Office.Common/Help")
    OSName = keyNode.GetByName("System")
End Function

现在您可以使用特定于每个系统的命令:

...
    Select Case OSName
        Case "WIN"
            OpenCommand = "explorer"
        Case "MAC"
            OpenCommand = "open"
        Case "UNIX"
            OpenCommand = "xdg-open"
    End Select
    Shell (OpenCommand, 1, FolderPath)
...

【讨论】:

    猜你喜欢
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多