
先日、皆さんに教えていただき
Cで出力ファイルを指定のフォルダに出す方法が上手く出来ました。
具体的には、↓こうやって指定しました。
sprintf( buff, "%s\\%s", path, filename );
やっていて思ったのですが、
この方法だと、指定フォルダが最初から無いとエラーが出てしまいます。
フォルダが無かったら、作成し、その中にファイルを出力していってくれる。という方法はできるものなのでしょうか?
もしできるようなら教えて下さい!!
よろしくお願いします!
No.5ベストアンサー
- 回答日時:
★回答ではないが余談。
・koko_u_ さんありがとう。
気づくとアンダーバーの関数名で置き換わっているみたいですね。
他にも気づくといろいろ置き換わっていますね。
C 関数、最近使っていないのでアンダーバーの関数名で調べてみます。
・ありがとうございました。
●質問者さんへ。
・_mkdir() 関数が使える場合はその関数でもフォルダ(ディレクトリ)が作成できます。
それでは。
参考URL:http://www5c.biglobe.ne.jp/~ecb/c/12_14.html
みなさん。丁寧な回答ありがとうございます!!
とても助かります!
さっそく、教えていただいたもの試してみたいと思います!!
ありがとうございました!!!
No.3
- 回答日時:
★回答者 No.1 です。
・今、調べたら mkdir() 関数がないね。何で?昔使った記憶があったのに?
仕方が無いので Win32 API の CreateDirectory() を使って作成して下さい。
また、Win32 API を使うのならフォルダの有無をチェックしてフォルダが
存在していない場合に作成するようにします。
・下のようになります。
サンプル:
#include <shlwapi.h>
#include <windows.h>
if ( PathIsDirectory(path) ){ ←フォルダ有無
CreateDirectory( path, NULL ); ←フォルダ作成
}
sprintf( buff, "%s\\%s", path, filename );
fp = fopen( buff, "w" );
:
fclose( fp );
参考文献:
http://nienie.com/~masapico/api_PathIsDirectory. …→『PathIsDirectory』
http://nienie.com/~masapico/api_CreateDirectory. …→『CreateDirectory』
http://nienie.com/~masapico/api_MakeSureDirector …→『MakeSureDirectoryPathExists』
↑
この関数を使うと一気に深い階層のフォルダを作成できます。
CreateDirectory() では1つづつしかフォルダを作成できません。
つまり c:\path1\path2\path3 というフォルダを順番に
c:\path1
c:\path1\path2
c:\path1\path2\path3
と3段階で作成します。でも、MakeSureDirectoryPathExists() なら一気に作成してくれます。
・以上。
No.2
- 回答日時:
ファイルのオープンはどのようなコードにしてますか?
一度にフォルダを作成して出力ファイルを作成するなどという便利な命令はありません
WinAPIなら
hFile = CreateFile( ... );
if (hFile == NULL ) {
DWORD dwError = GetLastError();
if ( dwError == ERROR_PATH_NOT_FOUND ) {
// フォルダーを作成
CreateDirectory(...);
// ファイルの再オープン
hFile = CreateFile( ... );
} else {
// 他のエラーの対処
}
}
といった具合でしょう
# CreateFile/CreateDirectoryの引数などは ヘルプで確認してください
No.1
- 回答日時:
★先にフォルダを作成させれば良い。
・単純にフォルダを作成させるのです。
mkdir( path );
sprintf( buff, "%s\\%s", path, filename );
↑
mkdir() 関数は既にフォルダがあればエラーを返しますが『無視』すれば良いと思います。
そうすれば、フォルダが存在しないと自動的に作成しますのでファイルもエラーにならない。
・以上。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) 【マクロ】ファイル名の日付によって、保管するフォルダを、自動選択したい 4 2023/08/16 11:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/02 11:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/01 10:35
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行すると メッセージボックスが表示されて okをク 4 2023/07/05 19:32
- XML エクセルのマクロについて教えてください。 3 2023/02/06 09:06
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
このQ&Aを見た人はこんなQ&Aも見ています
-
ファイルやディレクトリの存在確認を行う方法
C言語・C++・C#
-
fopenで別ディレクトリにファイルをオープンしたい
C言語・C++・C#
-
C言語でのフォルダ作成
C言語・C++・C#
-
-
4
ファイル出力の場所を指定
C言語・C++・C#
-
5
CStringをwchar_tに変換したい
C言語・C++・C#
-
6
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
7
fopenでのパス指定
C言語・C++・C#
-
8
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
9
メモリリークの件
C言語・C++・C#
-
10
外部依存関係について
C言語・C++・C#
-
11
文字列の置換をCStringで(C++)
C言語・C++・C#
-
12
クリティカルエラー Expression: (Buffer too small", 0)"
C言語・C++・C#
-
13
CFileDialogの最初のディレクトリ設定
C言語・C++・C#
-
14
配列を使わずに、変数名を動的にループで回したい
C言語・C++・C#
-
15
C言語を用いたファイルの一括削除について
C言語・C++・C#
-
16
CString から LPCTSTRの型に変換
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
VB6で7-ZIPのAPIを使用した圧縮...
-
Access VBA で フォルダ権限...
-
実行画面が消えてしまう?
-
HTMLで保存先を指定する方法に...
-
フォルダAから1つのファイルだ...
-
フォルダを開いて、閉じるのプ...
-
VB.NRT FolderBrowserDialogを...
-
ディレクトリ名変更してコピー...
-
フォルダの場所を可変にしたい...
-
C ファイル出力で、フォルダが...
-
Excel VBA マクロ フォルダ名を...
-
outlook マクロが終了しません。
-
Excel VBA マクロ リストボックス
-
フォルダ選択で取得した値を保...
-
VBAでファイル名を指定して保存...
-
VBプロジェクトでのフォルダ構...
-
excel VBA Dirにて検索したフォ...
-
Excel(VBAの処理も入ると思う...
-
ThisWorkbookがあるフォルダ更...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
会社のネットワーク上のファイ...
-
パス名に2バイト文字(マルチバ...
-
デスクトップの画像をhtmlに表...
-
【マクロ】ファイル名の日付に...
-
C ファイル出力で、フォルダが...
-
ファイル名と同名のフォルダを...
-
Excelのハイパーリンクについて...
-
VBA 最新のフォルダ取得
-
Excelで指定したフォルダに保存...
-
VBAでファイル名を指定して保存...
-
Access VBA で フォルダ権限...
-
サーバ内のフォルダ名と各フォ...
-
excelマクロ 冒頭3文字が一致す...
-
VBA フォルダ名に特定の文字を...
-
カレントフォルダって?
-
Excel VBA マクロ フォルダ名を...
-
VBA フォルダの複数選択ができない
-
ExcelVBAでフォルダへのハイパ...
-
ExcelのVBAでフォルダ指定がで...
おすすめ情報