0

純粋な C を使用して、Windows で単純なディレクトリ ツリーを作成したいと考えています。

#include<windows.h>
#include <stdio.h>

int main(){
   if(CreateDirectory("testdir", NULL) == 0)
        printf("error!\n");
   return 0;
}

これはうまくいきます。しかし、このコードはエラーを出力します - なぜでしょうか?

#include<windows.h>
#include <stdio.h>

int main(){
   if(CreateDirectory("testdir\\subdir", NULL) == 0)
        printf("error!\n");
   return 0;
}

このサイトによると、エラーが発生したかどうかを確認する正しい方法です。ただし、私が変更\\したときも/機能しないようです:

#include<windows.h>
#include <stdio.h>

int main(){
   if(CreateDirectory("testdir/subdir", NULL) == 0)
        printf("error!\n");
   return 0;
}

何か案は?

4

2 に答える 2

1

ルートディレクトリを指定していないためだと思います。たとえば、現在のコンテキストで、そのフォルダーを作成する場合は、パスを次のように開始する必要があります。

 .\\testdir\\myotherfolder. 

Cからやりたい場合は、持っている必要があります

 c:\\testdir\\myotherfolder
于 2013-08-14T13:00:24.513 に答える
1

このCreateDirectory関数は、パスの最終ディレクトリのみを作成します。中間ディレクトリが見つからない場合は、ゼロを返し、GetLastErrorを返しERROR_PATH_NOT_FOUNDます。http://msdn.microsoft.com/en-us/library/windows/desktop/aa363855%28v=vs.85%29.aspxを参照してください。

于 2013-08-14T13:11:19.477 に答える