1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2024-12-26 10:00:36 +00:00
CC-Tweaked/doc/events/file_transfer.md
Jonathan Coates 52b78f92cd
Use standard Markdown link syntax for references
References are now written using normal links: You now use [`print`] or
[print a string][`print`]) instead of @{print} or @{print|print a
string}.
2023-08-24 11:23:33 +01:00

1.3 KiB

module: [kind=event] file_transfer since: 1.101.0

The [file_transfer] event is queued when a user drags-and-drops a file on an open computer.

This event contains a single argument of type [TransferredFiles], which can be used to [get the files to be transferred][TransferredFiles.getFiles]. Each file returned is a [binary file handle][fs.BinaryReadHandle] with an additional [getName][TransferredFile.getName] method.

Return values

  1. [string]: The event name
  2. [TransferredFiles]: The list of transferred files.

Example

Waits for a user to drop files on top of the computer, then prints the list of files and the size of each file.

local _, files = os.pullEvent("file_transfer")
for _, file in ipairs(files.getFiles()) do
  -- Seek to the end of the file to get its size, then go back to the beginning.
  local size = file.seek("end")
  file.seek("set", 0)

  print(file.getName() .. " " .. file.getSize())
end

Example

Save each transferred file to the computer's storage.

local _, files = os.pullEvent("file_transfer")
for _, file in ipairs(files.getFiles()) do
  local handle = fs.open(file.getName(), "wb")
  handle.write(file.readAll())

  handle.close()
  file.close()
end