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来重命名文件。

相关问题