2012-06-21 42 views
1

我試圖創建一個程序,它將創建用戶想要創建的目錄總和。在windows上用C++在for循環中創建多個directoris

這是我的代碼:

#include <cstdlib> 
#include <iostream> 
#include<windows.h> 

using namespace std; 

int main(int argc, char *argv[]) { 

    int nrDirs = 0; 
    cin>> nrDirs; 

    for (int i = 0; i <= nrDirs; i++) { 
      CreateDirectory ("C:\\Users\\myName\\Desktop\\new", NULL); 
    } 
    system("PAUSE"); 
    return EXIT_SUCCESS; 
} 

現在我的問題,我不知道如何重命名的目錄。我知道如何在Objective-C中做到這一點:

"C:\\Users\\myName\\Desktop\\new%i", i 

但是這在C++中不起作用。 ?:(

那麼,如何做到這一點

+3

對於所有的實際用途,這是一個重複的http://stackoverflow.com/questions/2342162/stdstring-formating-like-sprintf – jogojapan

+2

在C++ 11中有'std :: to_string'。 – chris

回答

3

使用可以使用CString::Format

dirName.Format("C:\\Users\\myName\\Desktop\\new%i", i); 

使用可以使用std::stringstream

dirName << "C:\\Users\\myName\\Desktop\\new" << i; 

使用可以使用sprintf

sprintf(dirName, "C:\\Users\\myName\\Desktop\\new%i", i); 

對於所有上述情況,dirName是您需要傳遞給CreateDirectory的緩衝區。

如果路徑中的中間目錄不存在,請使用SHCreateDirectory。如果該API不存在,該API還會在路徑中創建中間目錄。

+0

是dirName一個字符串? – Arbitur

+0

3個例子如下 - 1)CString dirName; 2)std :: stringstream dirName; 3)char dirName [MAX_PATH]; – Superman