私はfopen("aaa\bbb\ccc\myfile.txt","w")
を使用して出力ファイルを作成しています。しかし、フォルダaaa
,とccc
は存在しません。この問題を解決する最良の方法は何ですか?必要なフォルダをすべて作成するようにfopenに依頼する標準的な方法はありますか?fopenですべての必要なフォルダを作成するには
9
A
答えて
-1
fopen()は、ディレクトリファイルではなくテキストまたはバイナリファイルの入力ストリームを開くために使用されます。存在しないディレクトリを保持するパスにファイルをオープンしたい場合、/sys/stat.hヘッダファイルのmkdir()メソッドを使うことをお勧めします。ディレクトリが準備できたら、必要なファイルを開くためにfopen()を使うことができます(まだ存在していなければ作成することもできます)。 これは私が私の$ HOMEフォルダのディレクトリにファイルを作成するために使用されるアプローチである: -
char* home_dir= getenv("HOME");
/*creates the directory with specified modes*/
mkdir(strcat(home_dir, "/make-a-note/"),S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
/*used the strcat() to generate the file-path.*/
personal_work=fopen(strcat(home_dir,"personal_work.txt"),"a+");
+0
そのコードを使用しないでください。 'strcat()'呼び出しは悪いです。環境変数の内容を保持するバッファを確実にオーバーランします。この未定義の動作は、他の環境変数を破棄したり、悪化させる可能性があります。 – cmaster
関連する問題
- 1. は、スクリプト/プラグインで.gitフォルダを作成する必要がありますか?
- 2. C#で必要なプロパティを作成するには?
- 3. 手動で.m2/repositoryフォルダを作成する必要があります
- 4. プログラムでXDGフォルダを作成する必要がありますか?
- 5. すべてのiVarsのプロパティを作成する必要がありますか?
- 6. PHP fopen($ file)$ファイルはエスケープする必要がありますか?
- 7. ユーザウィジェットの作成にphp fopenを使用していますか?
- 8. fopenを使用せずにPHPでPDFを作成する
- 9. フラッシュファイルを作成するにはどのようなソフトウェアが必要ですか
- 10. Applescriptで仲介フォルダを持つフォルダを作成するには?
- 11. プロジェクトでナゲット作成フォルダを作成するには?
- 12. Django:必要なすべてのモデルフィールドを設定しないフォームを作成していますか?
- 13. XMLRPCのfopenがエラーを返す必要があります
- 14. CRM 2011 - Sharepoint 2010統合 - すべてのフォルダを作成
- 15. 必要なファイルをすべてEXEにパッケージングできますか?
- 16. フォルダに認証が必要です
- 17. 件名のテキストに基づいて必要に応じてフォルダを作成するためのOutlookルールを作成する
- 18. java(フォルダではない)でファイルを作成する方法は?
- 19. 新しいファイルを作成するfopenは常に大文字です
- 20. カスタムボタンを作成するために必要な画像(png)を作成するのに最適なツール
- 21. Javaでは、新しいパッケージ、フォルダ、またはソースフォルダを作成する必要がありますか?
- 22. すべてのルビファイルに、フォルダ構造に一致するモジュール構造が必要ですか?
- 23. Mvc3 - (ほぼ)すべての要求に必要なデータを処理するベストプラクティス?
- 24. かみそりの表示に必要なフィールドを作成するには?
- 25. 準シンプルなjavascriptゲームを作成するのに助けが必要です
- 26. LLVMアーキテクチャに基づいてPythonのフロントエンドを作成するために必要なものは何ですか?
- 27. すべてのユーザーまたは現在のユーザーのプログラムショートカットを作成する必要があります
- 28. なぜfopenが使用されるかは重要ですか?
- 29. 必要なコメントを作成するTortoiseのためのフックSVN
- 30. 作成日をフォルダ名にしてファイルをフォルダにコピーする方法は?
いいえ、 'fopen'ディレクトリを作ることはありません。複数のレベルを作る拡張された 'mkdir()'について、[既に良い答えで質問されている](http://stackoverflow.com/questions/2336242/recursive-mkdir-system-call-on-unix/11425692)があります。あなたが望むものに似ています。 '' aaa/bbb/ccc/''で複数レベルのmkdirを実行し、 'fopen'を呼び出す必要があります。 –
ウィンドウの場合は、この記事の情報を使用することができますhttp://stackoverflow.com/questions/2834737/creating-new-folders-if-the-dont-exist-for-fopen – alexJones
一般に、それらのバックスラッシュを倍にすることを忘れないでください。 。 'fopen()'は単にディレクトリの作成をサポートしていませんが、もし存在するならば必要になります。 – unwind