From 1fb4f25744154fc29d3bd6eeb619ee3dc21e1e57 Mon Sep 17 00:00:00 2001 From: B YI Date: Tue, 19 Feb 2019 01:14:06 +0800 Subject: [PATCH] fix spurious file not exists see https://github.com/skywind3000/z.lua/issues/49 --- z.lua | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/z.lua b/z.lua index de6e988..2d27124 100755 --- a/z.lua +++ b/z.lua @@ -158,6 +158,10 @@ function string:startswith(text) return false end +function string:endswith(text) + return text == "" or self:sub(-#text) == text +end + function string:lstrip() if self == nil then return nil end local s = self:gsub('^%s+', '') @@ -418,6 +422,8 @@ end function os.path.isdir(pathname) if pathname == '/' then return true + elseif pathname == '' then + return false elseif windows then if pathname == '\\' then return true @@ -425,15 +431,11 @@ function os.path.isdir(pathname) return true end end - local name = pathname .. '/' - local ok, err, code = os.rename(name, name) - if not ok then - if code == 13 then - return true - end - return false + local name = pathname + if not name:endswith('/') then + name = name .. '/' end - return true + return os.path.exists(name) end @@ -446,6 +448,13 @@ function os.path.exists(name) if code == 13 then return true end + if code == 30 then + local f = io.open(name,"r") + if f ~= nil then + io.close(f) + return true + end + end return false end return true