2014-12-02 87 views
2

我想知道如何做類似下面的一個指定的文件類型的所有文件...閱讀目錄爲

我有一個目錄,我們稱之爲目錄「d:\文件夾\」,它有一些文件類型,如.json,.lua等,我需要能夠將適當的文件放在基於他們的文件類型的表中。我如何通過Lua做到這一點,而無需外部庫?另外,如何通過lua獲取關於文件的其他信息,如大小,修改日期等,並存儲該信息?

+3

這取決於操作系統。在沒有外部庫的情況下在Lua中執行目錄操作是不可能的。 – 2014-12-02 02:20:05

+0

Windows是操作系統。但是,你認爲目錄操作是不可能的?像刪除文件,創建文件等等都可以完成......使用諸如io.open和os.remove等方法。這或多或少是可能的。像複製和粘貼這樣的事情可以完成,它只需要很多工作。但是不應該通過string.match或類似的東西來找到文件擴展名嗎? – B1313 2014-12-02 02:22:40

+0

如何獲取目錄中的所有文件名? ANSI C沒有目錄的概念。 – 2014-12-02 02:31:17

回答

1

作爲Yu Hao said in the comment,Lua本身沒有任何方法來獲取文件夾中的文件列表或訪問這些文件的屬性。就外部庫而言,如果您正在尋找特定於Windows的解決方案,則可以使用Lua Filesystem模塊,該模塊具有您需要的所有內容或winapi。兩者都是使用mingw很容易編譯的小型庫。

如果您正在尋找Windows-only-no-external-library解決方案,您應該可以運行「dir」命令並使用io.popen處理其結果。您可以解析捕獲的輸出並基於此獲取文件名,大小和日期。您還可以使用file:seek獲取文件大小,但由於您可能正在解析,因此可以從輸出中獲取所有文件。我認爲沒有比這更簡單的東西。

怎麼樣尋找代表任何和所有字符的文件可以擁有一種模式,然後.file_type ...然後運行,通過io.open例如......可能嗎?

您將無法通過枚舉可能的符號組合來「猜測」文件名,只是因爲這樣......會......需要......一個......非常......長.... 時間。