【问题标题】:How to find the file path of a file in livecode如何在livecode中找到文件的文件路径
【发布时间】:2016-05-12 00:46:28
【问题描述】:

所以,我对 LiveCode 非常陌生,我在与 .livecode 文件相同的目录中有一个名为“words.txt”的外部文件,其中包含英文单词,每个都在一个新行上。我计划将此文件读入一个变量,然后从该变量中选择一个随机单词。但是,我很困惑我必须如何找到文件路径并将其插入到我执行此操作所需的语法中。我的代码如下:

    put url ("binfile:" & filePathGoesHere) into dictionary
    replace crlf with lf in dictionary
    replace numToChar(13) with lf in dictionary
    put any line of dictionary into randomword

文件路径应该插入到filePathGoesHere的代码中。编译程序后,我将移动它及其资源(从计算机到计算机),因此,除了与已编译程序位于同一文件夹中的文本文件之外,文件路径也会改变。如果编译程序和 txt 文件所在的文件夹名为“MyProgram”,我需要添加哪些额外代码才能完成这项工作?

非常感谢您的帮助,如果需要进一步的说明,我可以提供。如果将它移到那里可以提供帮助,我还有一个名为“资源”的文件夹。

【问题讨论】:

    标签: livecode


    【解决方案1】:

    如果您正在构建的堆栈是供您自己使用的,您可以将外部文件放置在任何地方,但如果您要将堆栈交付给其他用户,您需要规划外部文件的放置位置,以及如何。

    确定堆栈外文件路径的一种简单方法是使用堆栈的文件名:

    put the fileName of this stack into theFilePath
    set the itemDel to "/"
    put "words.txt" into the last item of theFilePath
    

    现在,FilePath 变量将成为对外部文件的绝对路径引用。如果文件放在“TextFiles”文件夹中,您可以这样做:

    put the fileName of this stack into theFilePath
    set the itemDel to "/"
    put "TextFiles/words.txt" into the last item of theFilePath
    

    如果您要将您的堆栈交付给其他人,您应该将您的外部文件/s 写入一个公共系统文件夹,或者您需要使用安装程序来定义您的文件/文件夹的放置位置。使用 specialFolderPath 函数可以找到常用文件夹路径:

    put specialFolderPath("Documents") into the theFolderPath
    

    最近在 LiveCode 中添加了一个“资源”文件夹——specialFolderPath("Resources")——它可以方便地在桌面和移动平台上交付。此外,请记住,出于安全原因,这些文件夹中很少有允许写入其中包含的现有文件。 “首选项”和“文档”是可以更改文件内容的两个文件夹示例。

    LC 字典包含每个文件夹的详细信息。

    【讨论】:

      【解决方案2】:

      如果您使用 file: 方案而不是 bindle:LiveCode 会自动将行尾字符转换为 LF,因此可能不需要该步骤。 (尽管如果您在 Mac 上读取以本机 Windows 编码生成的文本文件,则可能需要它。)您甚至不一定需要将其读入变量。你可以这样做:

      put any line of URL ("file:" & specialFolderPath("resources") & "/words.txt") \
         into tRandomWord
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-25
        • 1970-01-01
        • 1970-01-01
        • 2021-12-01
        相关资源
        最近更新 更多