2014-09-25 100 views
0

我正在做一個程序來告訴我,如果我成功地改變了我的目錄。但是,這是行不通的。我經歷了調試器模式,從我可以告訴該程序只是通過我的視覺工作室項目文件夾中的文件c:\ Users#'s \ blablabla ----- 我想查找dir1這是一個文件夾我的桌面(和這個目錄可以在任何地方) 這裏是我的代碼_chdir()不改變目錄C++

#include <iostream> 
#include <fstream> 
#include <direct.h> 
#include <io.h> 
#include <cstring> 
#include "functions.h" 

using namespace std; 


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

     int i = 1; 
     if (argc < 2) 
     { 
      cout << "no command line arguments given" << endl; 

     } 


for (i = 1; i < argc; i++) 
{ 


    if (_chdir(argv[i]) == 0) 
    { 
     cout << "Program changed directories successfully" << endl; 

    } 
    else 
     cout << "Unable to change to the directory " << argv[i] << endl; 

} 
} 
+0

1)_chdir在成功時返回的值是多少? 2)而不是隱藏argv [i]後面的名字,那麼如何硬編碼你知道存在的目錄並查看它是否有效? – PaulMcKenzie 2014-09-25 18:14:26

+0

該值不是0.如果我做「c:\\ User \\ id#\\ Desktop」程序成功更改了文件。我的程序找到的是c:\\ dir1是否太寬泛? – john 2014-09-25 18:16:51

+0

我知道這個值不是0.什麼是*值?返回值會告訴你問題是什麼。看到這裏:http://msdn.microsoft.com/en-us/library/bf7fwze1.aspx – PaulMcKenzie 2014-09-25 18:17:29

回答

1

我想找到DIR1這是我的桌面上的文件夾(這個目錄 可以在任何地方)

_chdir函數不會在您的計算機上搜索目錄。它將更改爲您指定的目錄。如果您通過c:\\dir1,則它會嘗試切換到目錄c:\\dir1:C:驅動器根目錄中的dir1目錄。如果您想在計算機上搜索名爲dir1的任何目錄,則需要自己執行搜索。

+0

這是有道理的。謝謝。 – john 2014-09-29 00:32:41