質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

2回答

1337閲覧

C言語でVisualstudio2022を使ってCドライブ直下へフォルダが作れない

Casablanca_mtg

総合スコア209

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2022/10/19 03:42

編集2022/10/19 05:27

お世話になります
テキストファイルの書き込み部分で実行してもCドライブ直下にフォルダが作成されません```ここに言語を入力
コード

#include <stdio.h> #include <stdlib.h> void main() { FILE* file; file = fopen("c:\\test\\sample.txt", "w"); if (file == NULL) { printf("ファイルが開けません。\n"); exit(1); } fprintf(file, "Hello World.\r\n"); fprintf(file, "ABCDEF\r\n"); fclose(file); }

イメージ説明

file = fopen("c://test//sample.txt", "w");フォルダが作れないのはなぜですか?
0 票の賛成
Ryoko · レクチャー数: 64 · 21時間前
御世話になります

64.テキストファイルの書き込み部分で実行してもCドライブ直下にフォルダが作成されません

SDLチェックも”いいえ”にしています
原因は何なんでしょうか?
ちなみにWin10やWin11両方でもできません
よろしくご教授ください
イメージ説明

イメージ説明

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

setoppu

2022/10/19 03:59

どこかとマルチポストなんですかね…。 >file = fopen("c://test//sample.txt", "w");フォルダが作れないのはなぜですか? Cドライブ直下にtestフォルダが無い状態で実行して、フォルダの作成とその中にファイルが作られない。 と言っているんですかね? fopEn()にそんな機能はない。 となるだけかと。
jbpb0

2022/10/19 04:10

> file = fopen("c:\\test\\sample.txt", "w"); cドライブ直下に「test」という名前のディレクトリは有りますか?
Casablanca_mtg

2022/10/19 04:12

ありがとうございます。 fopen()→open_sにしてもダメでした・ 原因がわからなく前に進めていません
Casablanca_mtg

2022/10/19 04:55 編集

jbpbo 様 ありがとうございます。 file = fopen("c:\\test\\sample.txt", "w");ここでC直下にtestというフォルダーを作っていると思いますが作れていません また手作業で先にフォルダを作って試しましたがsample.txtファイルは作成されません ちなみにこれはフォントもudemyサンプル通りにしております.あと考えられるのは???
jbpb0

2022/10/19 05:04

> file = fopen("c:\\test\\sample.txt", "w");ここでC直下にtestというフォルダーを作っていると思いますが 作ってません cドライブ直下に「test」という名前のディレクトリが既に有るのが前提のコードです > 手作業で先にフォルダを作って試しましたがsample.txtファイルは作成されません その時に、何かエラー的なものは発生してますか? 実行したらどうなるのか、詳しく質問に追記してください (ここに書くのではなく、質問を編集して追記する) 実行直後のスクショ画像を貼るのでもいいです
jbpb0

2022/10/19 05:06

> file = fopen("c:\\test\\sample.txt", "w"); と、 > file = fopen("c://test//sample.txt", "w");フォルダが作れないのはなぜですか? で、「\\」と「//」が違いますけど、実際に実行してるコードはどちらですか?
dodox86

2022/10/19 05:17

@質問者さん Windowsでは、C:ドライブのルートディレクトリ直下へいきなりファイルやディレクトリを作ることはできません。これはC言語の問題ではなく、Window OSのアクセス権の問題です。fopen エラー時にerrno を確認すると詳細がある程度分かります。
jbpb0

2022/10/19 05:34 編集

質問に追加されたスクショを見たら、cドライブ直下の「test」ディレクトリに「sample.txt」がありますけど、 > 手作業で先にフォルダを作って試しましたがsample.txtファイルは作成されません の時と、スクショを作った時は、何か違うのでしょうか?
Casablanca_mtg

2022/10/19 05:39

Jbpbo様 \\都//は同じと理解していました。 おかげさまで先にフォルダを作成することでsample.txtを生成して書き込むことができました 質問欄に追加でUPしました dodox86 様 ありがとうございます。確かにerrno_tが出ました プロパティでセキュリティーを編集したら治るかもしれませんね。 課題として調べてみます。 ただ最初にフォルダを作って実行したらsample.txtが生成され書き込みもできていました。皆様ありがとうございました
jbpb0

2022/10/19 06:09

> \\都//は同じと理解していました。 普通は「\\」か「/」です 「\\」は二つ並べる必要がありますが、「/」は一つで大丈夫です 私はやったことありませんが、「//」と二つ並べても大丈夫なのですかね? もし大丈夫でも、一つで大丈夫なものを無駄に二つ並べてるだけだと思いますよ
Casablanca_mtg

2022/10/19 07:29

そういえば/だけでしたね。 勘違いしていました。しかしどちらもできました。 ありがとうございました
guest

回答2

0

ベストアンサー

まず、必要とされるフォルダを作ってからファイルを作成する必要があります
すでに回答されてるようにfopenではフォルダは作れません

投稿2022/10/19 06:02

y_waiwai

総合スコア88163

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Casablanca_mtg

2022/10/19 07:35

理解できました。確かにfopenですね。よく考えてみるとフォルダを作るのはmkdirを使わなければいけませんでした.新規ファイルはtouchでしたね。 ありがとうございました
guest

0

Cドライブ直下にフォルダが作成されません

そんな機能はfopenにはありません。

投稿2022/10/19 04:46

maisumakun

総合スコア146544

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Casablanca_mtg

2022/10/19 05:04

c言語でVirtualstudio 2022を使ってCドライブ直下にフォルダを作る方法を教えてください あるいは先にtestフォルダを作っておいてそこへsanple.txtを生成して書き込むにはどうすればいいですか? よろしくご教授ください
maisumakun

2022/10/19 05:05

> あるいは先にtestフォルダを作っておいてそこへsanple.txtを生成して書き込むにはどうすればいいですか? エクスプローラなり、好きな方法でtestフォルダを先に作っておくのが手っ取り早いです。、
Casablanca_mtg

2022/10/19 05:10

それは理解しています。 ただ勉強のため(プログラミング)での考え方が知りたかっただけです。
maisumakun

2022/10/19 05:25

なにか調べてみたことはありますか?
Casablanca_mtg

2022/10/19 05:40

ありがとうございました。確認できました あとはerrno_tを調べてみます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問