2011-05-23 80 views
7

我想更改txt文件的名稱,但我找不到如何執行此操作。如何在C++中更改文本文件的名稱

例如,我想在我的C++程序中將foo.txt重命名爲boo.txt

+3

C++不直接支持文件系統。不同的操作系統爲此功能提供不同的API。你的目標是什麼操作系統? – 2011-05-23 21:07:13

+0

這不是一個C++的問題,除了你可以用一個名字打開一個文件進行閱讀,用另一個名字打開一個名字進行書寫和複製。更改名稱是一個操作系統功能,因此您需要告訴我們您正在使用哪個操作系統來幫助我們。 – 2011-05-23 21:08:07

回答

17

#include <stdio.h>(或<cstdio>),並使用rename(或std::rename):

rename("oldname.txt", "newname.txt"); 

流行的看法相反,這是包含在標準庫,並且是便攜式在一定程度上 - 雖然過程中的字符串的允許內容將隨着目標系統而變化。

4

文件系統支持是明顯缺席C++標準庫。正如Jerry Coffin的回答所示,stdio中實際上有一個重命名函數(與我共享的流行信念相反)。然而,標準庫不包括許多與文件系統相關的設備,因此存在Boost :: Filesystem(特別是操縱目錄和檢索有關文件的信息)。

這是一個設計決策,可以讓C++的約束更少(即可以在包括嵌入式系統在內的各種平臺上進行編譯,而文件的想法不存在)。

進行文件操作,一個有兩個選項:

  • 使用目標OS

  • 使用提供了跨平臺的統一接口庫的API

Boost::Filesystem就是這樣的C++庫,可以抽象出平臺差異。

您可以使用Boost::Filesystem::rename來重命名文件。

相關問題