2017-02-04 83 views
-2

以下最後兩種方法中的代碼不起作用。請建議一些其他方式使用字符串製作目錄。 window 10 visual studio 2015使用字符串C++創建目錄

string username="Ali"; 
string path = "c:/Backup/total data/" + username; 
mkdir("c:/Backup"); 
mkdir("c:/Backup/total userdata"); 
_mkdir(path.str());   // method does not work  
mkdir(path.c_str());   // method does not work 
system(path.c_str());   // method does not work 
+0

您正在使用哪個操作系統? – Asesh

+0

「*方法不起作用*」不是問題描述。見[mcve]。 – melpomene

+0

窗口10 visual studio –

回答

0

mkdir已棄用,請改用_mkdir。 這工作:

#include <iostream> 
#include "stdafx.h" 
#include <string> 
#include <Windows.h> 
#include <direct.h> 
using namespace std; 


int main() 
{ 
    string username = "Ali"; 
    string path = "c:\\Backup\\total data\\" + username; 
    mkdir("c:\\Backup"); 
    mkdir("c:\\Backup\\total userdata"); 
    mkdir(path.c_str());  // method not work 
    system(path.c_str()); 
    return 0; 
} 

注意,這是操作系統的特定代碼和你沒有提到你的操作系統,所以我假定窗口。 對於跨平臺代碼請看看boost/filesystem.hpp和boost :: filesystem :: create_directory 請確保您具有相應的權限(以admin身份運行程序)

+0

_mkdir錯誤c3867 –

+0

窗口10 visual studio –

+0

@ZakaAhmadChishti我使用Windows 10和msvc 2015 aso。使用mkdir得到我的錯誤:C4996 \t'mkdir':此項目的POSIX名稱已被棄用。而應使用ISO C和C++一致性名稱:_mkdir。另一方面,使用_mkdir在我的情況下工作正常。 – user