Jump to content




help fs.delete() is not working


  • You cannot reply to this topic
8 replies to this topic

#1 karelmikie3

  • Members
  • 112 posts

Posted 19 December 2012 - 03:30 AM

i got no errors it's simple not deleting
here is my code:


list = fs.list("myPrograms")
fs.makeDir("updater")

progs = {}
version = {}

for number,programs in pairs(list) do
tostring(number)
times_loop = tonumber(number)
progs[number] = programs
end

for i = 1, times_loop do
print(progs[i])
end

function pastebin()
getVersion()
times_readLine = 1
for i = 1, times_loop do
file2 = fs.open("updater/pastebin", "r")
for a = 1, times_readLine do
file2.readLine()
end
times_readLine = times_readLine + 2
shell.run("pastebin", "get", tostring(file2.readLine()), "updater/"..progs[i])
file3 = fs.open("updater/"..progs[i],"r")
file3.readLine()
versionNew = tonumber(file3.readLine())
print(versionNew)
print(version[i])
if versionNew < version[i] then
if versionNew == version[i] then
shell.resolve()
fs.delete("/updater/"..progs[i])
elseif
versionNew > version[i] then
shell.resolve()
fs.delete("/myPrograms/"..progs[i])
fs.copy("/updater/"..progs[i], "/myPrograms/",progs[i])
shell.resolve()
fs.delete("/updater/"..progs[i])
end
end
end
end

function getVersion()
for i =1, times_loop do
file = fs.open("myPrograms/"..progs[i],"r")
file.readLine()
version[i] = tonumber(file.readLine())
print(progs[i].." v"..version[i])
end
end

pastebin()

#2 remiX

  • Members
  • 2,076 posts
  • LocationSouth Africa

Posted 19 December 2012 - 03:39 AM

Which part is not deleting? All of it? Or what?

You made a typo: fs.delte("/updater/"..progs[i]) -- 'delte'

#3 karelmikie3

  • Members
  • 112 posts

Posted 19 December 2012 - 05:21 AM

but the first fs.delete() that is right spellet is also not working

#4 karelmikie3

  • Members
  • 112 posts

Posted 19 December 2012 - 05:23 AM

this part:

shell.resolve()
fs.delete("/updater/"..progs[i])
elseif
versionNew > version[i] then
shell.resolve()
fs.delete("/myPrograms/"..progs[i])
fs.copy("/updater/"..progs[i], "/myPrograms/",progs[i])
shell.resolve()
fs.delete("/updater/"..progs[i])

#5 remiX

  • Members
  • 2,076 posts
  • LocationSouth Africa

Posted 19 December 2012 - 05:42 AM

Add this before it attempts to delete:

[code]fileCheck = fs.open("/updater/" .. progs[i], "r")
if fileCheck then -- To check if it opens and it's actually there
fs.delete("/updater/" .. progs[i])
else
error("Cannot open file: /updater/" .. progs[i])
end[/code

Etc... Are you sure the files actually exist and you spelt them correctly? Try removing the first '/'

#6 Orwell

    Self-Destructive

  • Members
  • 1,091 posts

Posted 19 December 2012 - 05:48 AM

Here is your error:
if versionNew < version[i] then
  if versionNew == version[i] then
    // stuff
  elseif versionNew > version[i] then
    // stuff
  end
end
it will never go into the second conditional block because you first require versionNew to be smaller than version[i] then expect it to be equal to or greather than version[i]. Thus the condition will never be fulfilled.

#7 karelmikie3

  • Members
  • 112 posts

Posted 19 December 2012 - 06:33 AM

new i got this shell:80: bad argument: string expected, got nil

code

    list = fs.list("myPrograms")
    fs.makeDir("updater")
	
    progs = {}
    version = {}
	
    for number,programs in pairs(list) do
	 tostring(number)
	 times_loop = tonumber(number)
	 progs[number] = programs
    end
	
    for i = 1, times_loop do
	 print(progs[i])
    end
	
    function pastebin()
	 getVersion()
	 times_readLine = 1
	 for i = 1, times_loop do --where do you get this variable?
	  file2 = fs.open("updater/pastebin", "r")
	   for a = 1, times_readLine do
	    file2.readLine() --do you need to be putting these to a variable?
	   end
	  times_readLine = times_readLine + 2
	  shell.run("pastebin", "get", tostring(file2.readLine()), "updater/"..progs[i])
	  file3 = fs.open("updater/"..progs[i],"r")
	  file3.readLine()
	  versionNew = tonumber(file3.readLine())
	  print(versionNew)
	  print(version[i])
	  if versionNew < version[i] or
	  versionNew == version[i] then
	  shell.resolve()
	  fs.delete("updater/"..progs[i])
	  elseif
	  versionNew > version[i] then
	  fs.delete("myPrograms/"..progs[i])
	  fs.copy("updater/"..progs[i], "myPrograms/",progs[i])
	  fs.delete("updater/"..progs[i])
	  end
	 end
    end
	
    function getVersion()
	 for i =1, times_loop do
	  file = fs.open("myPrograms/"..progs[i],"r")
	  file.readLine()
	  version[i] = tonumber(file.readLine())
	  print(progs[i].." v"..version[i])
	 end
    end
	
    pastebin()


#8 Orwell

    Self-Destructive

  • Members
  • 1,091 posts

Posted 19 December 2012 - 06:48 AM

This line causes the error and makes no sense at all:
shell.resolve()

What are you trying to do there?

#9 karelmikie3

  • Members
  • 112 posts

Posted 19 December 2012 - 07:55 AM

idk i was just trying something to solve it by my self but thanks it works now fine





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users