我用python编写了一个程序,它的功能是能够发现文件大小,创建目录,并像在普通shell中一样四处移动。问题是我需要能够用c++来完成。在
下面是我需要c++功能的python代码:
os.chdir('r'+str(r)+'n'+str(n))
def build_path(newpath):
if os.path.isdir(newpath):
os.chdir(newpath)
else:
os.mkdir(newpath)
os.chdir(newpath)
还有这件作品:
^{pr2}$所以基本上我需要能够创建一些目录,转换成那些目录,构建文件,但是不要让它们变得比2.5 MB大得多,当它们最终超过这个大小时,创建一个以1为增量的新文件。在
所以文件树看起来像:
r4n4/dir1/data0、data1、data2等 r4n4/dir2/data0、data1、data2等 等等。在
我如何用c++实现这一点? 我知道我可以呼叫系统('command') 但我不知道如何使用它很好地获得文件大小,我只是希望有一个更简单的方法来做到这一点。 另外,我没有权限在我运行这个程序的地方使用boost。在
尝试查看boost::filesystem库。(http://www.boost.org/doc/libs/1_54_0/libs/filesystem/doc/index.htm)教程中涵盖了您的所有三个请求。在
您可以在代码中使用
stat()
来获取文件系统对象的属性。下面是一个例子:在
^{pr2}$stat.h
中也有一些宏,这些宏使得检查某个文件是否是常规文件或其他文件变得更加容易,而不是像上面那样执行多个操作。例如,S_ISREG宏将执行与上面代码相同的操作:宏
S_ISDIR
将告诉您它是否是一个目录。还有其他类似的宏。在您可以执行
man -s 2 stat
来查看stat()的手册页并获取更多详细信息。希望这有帮助。在你可以利用系统调用来实现你想要的。如果您使用Linux,请查看以下手册页:
相关问题 更多 >
编程相关推荐