fopen
ファイルの書き込みを開始するためにユーザー入力を受け取るC++プログラムがあります。誰かが、フォルダの1つが存在しないために、指定された場所で新しいファイルを開くのに失敗しないようにフォルダ構造を作成するために、を返しFILE*
、Windows固有のバージョンを使用する関数を見つけるのを手伝ってもらえますか?本当にありがとう!mkdir
fopen
3669 次
1 に答える
2
dbghelp.hで宣言されたメソッドMakeSureDirectoryPathExistsがWindowsAPIにあります。それは再帰的にディレクトリを作成するので、私はそれがあなたが求めているものだと思います。ただし、特定のディレクトリへの書き込みアクセス権がある場合は特権などにも依存するため、この「失敗しない」ことを確認する方法はありません。
編集:ここにいくつかのダミーのサンプルコードがあります。ただし、書き込み時にdbghelpヘッダーが見つからなかったため、GetProcAddressを使用します。
typedef BOOL (WINAPI * CreateDirFun ) ( __in PCSTR DirPath );
HMODULE h = LoadLibrary( "dbghelp.dll" );
CreateDirFun pFun = (CreateDirFun) GetProcAddress( h, "MakeSureDirectoryPathExists" );
(*m_pFun)( psPath ) )
CreateDirectory( psPath );
FreeLibrary( h );
于 2010-05-14T14:33:05.510 に答える