WinAPIでフォルダ作成
先日質問させていただき、
ファイル出力時に、フォルダを作成し、そのフォルダにファイルを出力していく方法をお聞きしたところ、
_mkdir()関数を使い、最初にフォルダを作っておく方法を教わり、
これは上手くいきました。
それとは別に、WinAPIを使い、フォルダの有無を調べ、無い場合は
作成するという方法があるのを教えてもらいました。
WinAPI使ったことないので、良くわからなかったのですが、
丁寧な説明を頂き、ほとんど、コピーして貼り付けるだけだったので
実行してみたのですが、意味のわからないエラーが出てしまいました。
実行した方法は、
#include <shlwapi.h>
#include <windows.h>
if ( PathIsDirectory(path) ){ ←フォルダ有無
CreateDirectory( path, NULL ); ←フォルダ作成
}
sprintf( buff, "%s\\%s", path, filename );
fp = fopen( buff, "w" );
:
fclose( fp );
エラーの内容は
構文エラー : 識別子 'DECLSPEC_IMPORT' がシンタックスエラーを起こしました。
というものでした。
エラーの部分は、よく解らないのですが、自分で書いたメインの文ではなく、何かのヘッダ部分?のようでした。
もしかして、WinAPIを使うには、何かインストールしないとマズイのでしょうか??
これだけの説明で、何が悪いのか指摘できるのかわかりませんが、
わかる方いらっしゃいましたら教えて下さい。
何か足りない情報があったら書き込みます!
ちなみにもう一つお聞きしたいのは、フォルダのpath指定のところは
相対パスでもいいのでしょうか?
例えば、現在Cファイルがある場所にDATAというフォルダを作りたかったら、
path指定のところは、
PathIsDirectory(DATA) で問題ないのでしょうか?
すみませんが、回答お願いします!
お礼
すみません。 自己解決しました。
補足
mkdirが一フォルダずつしか作成出来ないため 現在は、 (1)「\\abc」までは直接引数として渡して作成し (2)「\\(入力内容1)」の部分は変数を引数として渡しています。 しかし、その後の (3)「\\xyz」 (4)「\\(入力内容2)」 の際の変数をどのように変更すればいいかわかりません。 というか(1)の際に設定した変数(仮にhen)を(2)(3)(4)と変わるたびに長さを増やすことは出来るのでしょうか。 何だか自分でも何を言っているのかわからなくなってきそうですが どうかお願いします。