簡體   English   中英

在C ++中使用linux系統調用以及文件和文件夾管理

[英]using linux system calls and file & folder management in c++

我正在編寫一個c ++程序,這是任務:

我有一個string proj_Name和另一個字符串地址,並且在程序旁邊有一個名為root的文件夾。 現在,我必須在根文件夾中創建一個名為proj_name的文件夾,並將所有內容從地址復制到該新文件夾。

當使用linux終端建立目錄或處理文件時,我鍵入mkdir proj_namecp [src] [dst] 有人告訴我,要在程序中使用終端命令,必須使用系統調用,但是我不知道什么是系統調用或如何使用它。

除此之外,我可能會在根目錄中創建更多項目文件夾,並且我必須在程序中有權訪問其中的每個文件夾。

如何使用OOP設計來處理那些文件和文件夾(例如,我從用戶那里獲得proj_name ,並且必須在根目錄中找到相應的文件夾,然后對該項目執行一些任務)?

絕對應該有一個_project_ class ,但是我不知道它需要什么成員變量。 此外,有人告訴我可以以這種遞歸方式復制文件夾:復制文件夾->打開它->每個文件->復制文件->每個文件夾從一開始就執行此算法。

有人可以幫我嗎?

提前致謝。

我假設這是家庭作業,盡管您沒有指出。 想到三個解決方案:

  1. 使用system()調用創建並執行命令行字符串。 坦率地說,這有很多原因,這很糟糕:(i)很難檢查命令是否有效;(ii)插入惡意代碼很容易(例如hack);(iii)特定於平台。

  2. 正如您提到的,您可以使用系統調用來實現文件的復制,目錄的創建等。如果您在UNIX上工作,則可以看一下可能有幫助的問題 同樣,這里的缺點是它是特定於平台的。

  3. 最后,您可以使用通用庫,例如Boost文件系統 ,這是這三種解決方案中最好的,但是如果您必須證明可以在OO中建模文件系統,可能對您沒有太大幫助。 通過API的瀏覽可能會為您提供一些有關各種對象如何在OO設計中組合在一起的線索。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM