2011-03-22 69 views
4

有什麼方法可以使用C程序找出文件的父目錄。我想爲該目錄所具有的文件賦予相同的權限。爲此,我想知道文件的父目錄。任何幫助表示讚賞。文件的父目錄

+1

從字符串?從文件描述符? – 2011-03-22 14:25:35

+2

一個文件可以有一個以上的父目錄:請參閱Linux中的'man ln',聯結點或Windows中的任何內容('mklink /?'適用於我的Windows Vista) – pmg 2011-03-22 14:29:43

+0

如果您不授予它任何權限,它將繼承那些目錄。 – 2011-03-22 14:31:32

回答

3

如果你有文件的路徑,你可以手動使其成爲絕對路徑做,如果它是相對的(不以/在Unix或letter:\\letter://在Windows開始),然後將其拆分爲文件分隔符(/\),但我知道沒有內置函數可以爲您執行所有這些操作。

basename and dirname函數可能會有所幫助,但是您需要自己弄清楚文件的路徑,因爲它們只能用於字符串;他們不詢問文件系統。

+0

dirname手冊頁:http://linux.die.net/man/3/dirname – Daniel 2014-03-13 09:20:56

1

它不能保證做正確的事情,但你有沒有嘗試過的以下內容:

  • 如果你的文件名包含路徑分隔符(如在Unix /\在Windows上),複製使用例如字符串strdup()並用零/空字符替換路徑分隔符的最後一次出現(用例如strrchr()找到)。生成的字符串將是您文件的父目錄。

  • 如果沒有路徑分隔符,則文件駐留在當前的工作目錄中。您是否嘗試過使用....鏈接可以在Unix和Windows上運行。

有相當多的極端案例以上(例如什麼文件/hello.txt的?),但它應該是一個開始。

相關問題