2010-07-27 63 views
3

我正在編寫一個程序,它從服務器下載tar.xz文件並在特定位置提取它們。我正努力尋找在特定位置提取tar.xz文件的方法。我正在使用Qt,所以更多的Qt方法可能會有用,但我並不介意。在C/C++中提取tar.xz

+0

+1讓我對以前沒有碰過的.xz感到好奇。 – 2010-07-27 12:48:07

回答

1

Qt中不支持檔案。您可以查看提供虛擬文件系統支持的KDE庫,也可以使用QProcess直接撥打tar。使用-C <dir>(大寫字母C)指定要提取到的目錄。

[編輯]還有libtar(BSD許可證)。

+0

我會優先考慮不使用QProcess,因爲我希望我的應用程序能夠在Windows上運行,並且使用QProcess將意味着我將不得不使用tar來裝運Windows。也許有人可以給我一個關於liblzma的教程。 – 2010-07-27 13:03:41

+0

該庫不允許您讀取tar歸檔文件。如果「.xz」不是拼寫錯誤,那麼liblzma將只允許您解壓檔案。但通常tar檔案是用bzip2(.bz2)或gzip(.gz)壓縮的。對於這些,你可能需要其他庫。 – 2010-07-27 13:06:13

+0

我相信我可以使用zlib來提取焦油,這是否正確。 – 2010-07-27 13:07:54