C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

ファイルを作る /takahiro (24/01/14(Sun) 00:49) #102833
Re[1]: ファイルを作る /WebSurfer (24/01/14(Sun) 10:30) #102835
│└ Re[2]: ファイルを作る /takahiro (24/01/14(Sun) 13:09) #102836
│  └ Re[3]: ファイルを作る /WebSurfer (24/01/14(Sun) 13:46) #102837
Re[1]: ファイルを作る /kiku (24/01/15(Mon) 08:56) #102838


親記事 / ▼[ 102835 ] ▼[ 102838 ]
■102833 / 親階層)  ファイルを作る
□投稿者/ takahiro (1回)-(2024/01/14(Sun) 00:49:07)

分類:[C#] 

c# コンソールアプリ

宜しくお願い致します
ディレクトリに合計.csvのファイルをつくりたいのですが
エラーが出てうまく作れません
教えて頂きたいのでお願いします

エラーの内容は

エラーが発生しました: Access to the path 'C:\Users\MM\Documents\test\total.csv' is denied.

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string directoryPath = @"C:\Users\MM\Documents\test";
        string fileName = "total.csv";
        string filePath = Path.Combine(directoryPath, fileName);

        try
        {
            if (!Directory.Exists(directoryPath))
            {
                Directory.CreateDirectory(directoryPath);
                Console.WriteLine("ディレクトリが作成されました: " + directoryPath);
            }

            if (!File.Exists(filePath))
            {
                using (StreamWriter sw = File.CreateText(filePath))
                {
                    sw.WriteLine("Header1,Header2,Header3");
                    sw.WriteLine("Data1,Data2,Data3");
                }

                Console.WriteLine("ファイルが作成されました: " + filePath);
            }
            else
            {
                Console.WriteLine("ファイルは既に存在します: " + filePath);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("エラーが発生しました: " + ex.Message);
        }
    }
}

[ □ Tree ] 返信 編集キー/

▲[ 102833 ] / ▼[ 102836 ]
■102835 / 1階層)  Re[1]: ファイルを作る
□投稿者/ WebSurfer (2870回)-(2024/01/14(Sun) 10:30:21)
No102833 (takahiro さん) に返信
> c# コンソールアプリ

.NET Framework と .NET Core/.NET のどっちなのかとそのバージョンも書いてください。

ディレクトリも存在しない状態から実行して、StreamWriter sw = File.CreateText(filePath)
の行で質問に書いてあるエラーが出るのだろうと想像してますが、そうなんですか? 違う場
合はどう違うのか書いてください。

フォルダに対するアプリのアクセス権は確認しましたか?


本題とは直接関係ない話ですが、Exception を catch するのは止めた方がいいです。


[ 親 102833 / □ Tree ] 返信 編集キー/

▲[ 102835 ] / ▼[ 102837 ]
■102836 / 2階層)  Re[2]: ファイルを作る
□投稿者/ takahiro (2回)-(2024/01/14(Sun) 13:09:35)
No102835 (WebSurfer さん) に返信
> ■No102833 (takahiro さん) に返信
>>c# コンソールアプリ
>
> .NET Framework です


ディレクトリはあります
アプリのアクセス権はどう確認すればいいでしょうか
[ 親 102833 / □ Tree ] 返信 編集キー/

▲[ 102836 ] / 返信無し
■102837 / 3階層)  Re[3]: ファイルを作る
□投稿者/ WebSurfer (2871回)-(2024/01/14(Sun) 13:46:56)
No102836 (takahiro さん) に返信

話が通じてますか?

>.NET Framework です

バージョンも書くようお願いしました。書けない事情がなければ書いてください。

> ディレクトリはあります

アプリを実行した結果 C:\Users\MM\Documents\test というディレクトリが作られた
ということでいいのですか?

> アプリのアクセス権はどう確認すればいいでしょうか

エクスプローラーでディレクトリを右クリック > 「プロパティ」をクリック > 表示
されたダイアログの[セキュリティ]タブをクリック > [グループ名またはユーザ
ー名]と[アクセス許可]を見てください。
[ 親 102833 / □ Tree ] 返信 編集キー/

▲[ 102833 ] / 返信無し
■102838 / 1階層)  Re[1]: ファイルを作る
□投稿者/ kiku (394回)-(2024/01/15(Mon) 08:56:22)
No102833 (takahiro さん) に返信
> エラーが発生しました: Access to the path 'C:\Users\MM\Documents\test\total.csv' is denied.
上記のパスのUsersの直下がMMであることから、
ユーザMM内のフォルダにアクセスしようとしています。
実際にログインしているユーザはMMなのでしょうか?
おそらくMM以外でログインしているため、
MMへのアクセス権がないため、エラーが発生しているのではないでしょうか?
[ 親 102833 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -