【问题标题】:Extracting from a file - permission denied从文件中提取 - 权限被拒绝
【发布时间】:2015-07-07 18:39:29
【问题描述】:

我尝试从扩展名 .w3speech 中提取,并找到了一组似乎可以工作的 lua 代码,但是,我按照说明进行操作,但得到“权限被拒绝”。代码编写者没有回应......所以我只是希望有人能看看这个问题并提供一些指导。谢谢你。

Inspect_w3speech.lua

require("mod_binary_reader")
require("mod_w3strings")

local in_file = assert(arg[1], "\n\nno input\n")
local out_dir = arg[2] or "."
local debug = arg[3] or false

local r = BinaryReader
r:open(in_file)

mod_binary_reader.lua

assert(_VERSION == "Lua 5.3")

BinaryReader = {
    f_handle = nil,`
    f_size = 0
}

function BinaryReader:open(fullpath)
    self.f_handle = assert(io.open(fullpath, "rb"))
    self.f_size = self.f_handle:seek("end")
    assert(-1 ~= self.f_size, "your Lua doesn't support files larger than 2 Gb")
    self.f_handle:seek("set")
end

按照指示,我编写了一个简单的 bat 文件来读取 inspect_w3speech.lua,如下所示。

a:\vid_inwork\work\lua.exe inspect_w3speech.lua a:\vid_inwork\work a:\vid_inwork\work\out

但是,它给出了以下内容。

a:\vid_inwork\work\lua.exe: a:\vid_inwork\work\mod_binary_reader.lua:9: a:\vid_inwork\work: Permission Denied
stack traceback:
[C]: in function 'assert'
a:\vid_inwork\work\mod_binary_reader.lua:9: in method 'open'
inspect_w3speech.lua:9: in maind chunk
[C]: in ?

似乎卡在了inspect_w3speech.lua调用mod_binary_reader.lua的地方,不知道为什么。

这里是完整 lua 文件和示例 .w3speech 文件的链接。 https://drive.google.com/folderview?id=0ByIVyOBFNEN4fl9ic2ltdDFfckJnLVdQV1VnQmJ4TUxodmhwblY3dEt2UTIyWGFfbU1FeG8&usp=sharing

【问题讨论】:

  • a:\vid_inwork\work 是要使用的文件吗?因为它看起来像一个目录,这是不对的。
  • 是的...这是所有lua文件所在的地方...指令说要键入... lua inspect_w3speech.lua path_to.w3speech [output_dir [debug]] ...根据研究我了解到我应该这样输入,但如果是我不理解简单指令而不是代码,那么我很乐意纠正。
  • 是的,path_to.w3speech 不是 path to directory of .w3speech files。看代码。它在第一个参数上运行io.open,因此它需要是一个文件。
  • 非常感谢!但是我应该把 .w3speech 文件的路径目录放在哪里? bat 文件给了我... mod_binary_reader.lua:9: path_to_w3speech: no such file or directory ... 我应该搜索 mod_binary_reader.lua 以添加或更改目录吗?
  • path_to.w3speech 是一个占位符。您使用您希望脚本对其进行操作的.w3speech 文件的路径。 a:\vid_inwork\work\some_file.w3speech 或其他。

标签: lua permission-denied


【解决方案1】:

您正在使用目录作为第一个参数调用脚本

a:\vid_inwork\work\lua.exe inspect_w3speech.lua a:\vid_inwork\work a:\vid_inwork\work\out

但它需要一个文件名。

所以给它你要操作的文件的路径。

a:\vid_inwork\work\lua.exe inspect_w3speech.lua a:\vid_inwork\work\some_file.w3speech a:\vid_inwork\work\out

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-10
    • 2012-11-24
    • 2018-06-06
    • 1970-01-01
    • 2019-06-26
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多