先日、皆さんに教えていただき
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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
ファイル出力の場所を指定
C言語・C++・C#
-
fopenで別ディレクトリにファイルをオープンしたい
C言語・C++・C#
-
ファイルやディレクトリの存在確認を行う方法
C言語・C++・C#
-
-
4
画面を強制的に再描画させる方法
C言語・C++・C#
-
5
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
6
std::stringからLPCWSTR型への変換
C言語・C++・C#
-
7
関数から配列を返すには?
C言語・C++・C#
-
8
DWORDの実際の型は何でしょうか
C言語・C++・C#
-
9
あるディレクトリ内のファイルをファイル名でソートして取得
C言語・C++・C#
-
10
C言語 配列の長さの上限
C言語・C++・C#
-
11
C言語での引数の省略方法
C言語・C++・C#
-
12
C言語でのフォルダ作成
C言語・C++・C#
-
13
unsigned long long 型のフォーマット指定子
C言語・C++・C#
-
14
#define _CRT_SECURE_NO_WARNINGS について
C言語・C++・C#
-
15
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
16
ダイアログ表示時にチェックボックスにチェックされている状態にするには?
C言語・C++・C#
-
17
テキストカーソル位置の取得
C言語・C++・C#
-
18
MakeSureDirectoryPathExists
C言語・C++・C#
-
19
外部シンボル _main"は未解決です"
C言語・C++・C#
-
20
ハンドルはポインタか
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 最新のフォルダ取得
-
Windows10でコマンドプロンプト...
-
VBA フォルダ名に特定の文字を...
-
ファイル名と同名のフォルダを...
-
(UWSC)ファイルを作るときに、...
-
msgファイルを扱いたい
-
多量のファイルをフォルダに自...
-
あるフォルダーのファイルを違...
-
Access VBA で フォルダ権限...
-
期間を指定したフォルダの削除...
-
windowsでテキストファイルの各...
-
ディレクトリ名変更してコピー...
-
フォルダにリンクを貼りたい
-
VBでフォルダをパスワードでロ...
-
複数選択フォルダの配列への格納
-
VB .netでドキュメントにフォル...
-
フォルダのサイズを一覧にした...
-
Excelのハイパーリンクについて...
-
会社のネットワーク上のファイ...
-
デスクトップの画像をhtmlに表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
windowsでテキストファイルの各...
-
VBA 最新のフォルダ取得
-
ファイル名と同名のフォルダを...
-
デスクトップの画像をhtmlに表...
-
VBA フォルダ名に特定の文字を...
-
Excelのハイパーリンクについて...
-
フォルダ内のPDFファイル名を変...
-
Excelで指定したフォルダに保存...
-
会社のネットワーク上のファイ...
-
【マクロ】ファイル名の日付に...
-
保存先のフォルダ名を指定した...
-
多量のファイルをフォルダに自...
-
パス名に2バイト文字(マルチバ...
-
ディレクトリ名変更してコピー...
-
C ファイル出力で、フォルダが...
-
Access VBA で フォルダ権限...
-
サーバ内のフォルダ名と各フォ...
-
フォルダにリンクを貼りたい
-
vbsで選択ダイアログを表示した...
おすすめ情報