我試圖模擬ls命令的行爲。打印當前目錄的內容C++
我創建使用dirent.h庫
DIR *dir;
dirent *pdir;
dir=opendir(".");
while((pdir=readdir(dir)))
{
cout<< pdir->d_name << endl;
}
closedir(dir);
我的當前目錄中包含兩個文件,Screen.cpp和a.out的一個簡單的代碼。我想此代碼以打印在順序,ls -la
命令將例如
.
..
a.out
Screen.cpp
然而這個代碼輸出它像
.
Screen.cpp
..
a.out
是否有任何簡單的方法如何實現如此而不存儲/分揀列表在一些容器?
很確定'readdir'沒有提供關於退貨順序的保證。 (無論是inode,磁盤位置,添加日期,還是其他) – vu1p3n0x
我不允許使用unix系統命令 – Darlyn
其實並不難。通過一小部分工作,您可以將'readdir'轉換爲迭代器。然後它變成總共三行來閱讀排序並打印條目。 –