2012-08-08 33 views
11

Tôi cần phải gọi các yêu cầu trên một tập tin lua mà sẽ không phải lúc nào cũng ở cùng một vị trí. Tôi đã cố gắng gọi yêu cầu trên tên đường dẫn đầy đủ nhưng điều đó dường như không hoạt động. Tôi thậm chí đã cố gắng thay thế một trong những bình thường làm việc của tôi đòi hỏi phải có một chính xác tên đường dẫn đầy đủ đến tập tin cùngLua Yêu cầu chức năng trên một tên đường dẫn đầy đủ

dụ thay đổi yêu cầu "foo" để yêu cầu "C: \ Users \ Me \ MyLuaProject \ foo"

nhưng khi tôi chuyển nó sang tên đường dẫn đầy đủ, nó không thể tìm thấy nó nữa. Vì vậy, tôi tự hỏi nếu bạn thậm chí có thể gọi yêu cầu trên một con đường đầy đủ và nếu không làm thế nào tôi sẽ đạt được kết quả tương tự khác nhau?

Trả lời

13

Thêm thư mục chứa các tập tin để package.path:

package.path = package.path .. ";C:\\Users\\Me\\MyLuaProject" 
require "foo" 

Bạn cũng có thể thêm nó vào biến môi trường LUA_PATH, nhưng điều này có lẽ là ít dễ dàng để thay đổi một cách nhanh chóng.

Mẫu chung cho mô-đun là có abc.lua và abc/xyz.lua; yêu cầu tập tin trong một thư mục con như vậy, sử dụng như sau:

require "abc" 
require "abc.xyz" 
+0

Bạn là một trời cảm ơn bạn rất nhiều –

+0

tôi đã phải thêm một dấu hỏi như một trường hợp hoang dã: package.path = package.path .. ";/path/to/module/?. lua" nhưng có lẽ đó là một điều linux – Luca

13

Nếu bạn chỉ cần tải một tập tin, sử dụng dofile, trong đó có một con đường:

dofile("C:\\Users\\Me\\MyLuaProject\\foo") 
Các vấn đề liên quan