2014-09-25 62 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