ページ 11

ディレクトリが作成されない

Posted: 2010年5月03日(月) 16:43
by dic
またまたお世話になります
現在ディレクトリを作成する関数 CreateDirecoty を呼んでいるのですが
エラーコード:123
ERROR_INVALID_NAME 123 0x0000007B ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。
がでてディレクトリが作成できないです

以下がソースですが どこがいけないのでしょうか?
ディレクトリ名に全角のスペースを入れて手作業で作ってみたのですが作成できるようで
特にこれといったディレクトリ名に関して問題ないと考えているのですが
どこかに問題があるのでしょうか?

ファイルを読み込んで 最初の1行目をディレクトリにするという仕様です
void    Module160::Run()
{
    char    list[1024];
    int        i, j;
    for( i=1, j=1; i<=g_iEnd; i++ )
    {
        sprintf_s( list, "%d_list.txt", i );

        FILE    *file;
        fopen_s( &file, list, "rt" );

        char    directory[1024],    img_url[1024];
        memset( directory, 0, sizeof(directory) );
        fgets( directory, sizeof(directory), file );

        char    cur[1024];
        GetCurrentDirectoryA( sizeof(cur), cur );

        strcat_s( cur, "\\" );
        strcat( cur, directory );
//        CreateDirectory( tDir, NULL );
//        CreateDirectory( _T("test"), NULL );
        if( 0 == CreateDirectoryA( cur, NULL ) )
        {
            DWORD dw = GetLastError();
            printf( "failed.\n" );

        }
画像

Re:ディレクトリが作成されない

Posted: 2010年5月03日(月) 16:46
by たかぎ
とりあえず、↓を読んでみると吉かも
http://www.kijineko.co.jp/tech/supersti ... imply.html

Re:ディレクトリが作成されない

Posted: 2010年5月03日(月) 17:12
by dic
たかぎさん
ヒントをありがとうございます

char cur[1024] の最後が \0 で終わっているので \0 を削除し
文字列の最後を 0 にしたらディレクトリが作成できました
int    len = strlen(cur);
        cur[len-1] = 0;