
下記のエラーメッセージが表示されてアプリケーションが動作しないのですが、
Windowsって、環境変数TEMPにアクセスエラーでファイルが書き込めない場合ってあるものなのでしょうか?
また、何が原因でこのような状態になるのでしょうか?
エラー:
TEMP ディレクトリへのアクセスが拒否されました。XmlSerializer を実行している ID '{0}' に、TEMP ディレクトリへのアクセスに必要なアクセス許可がありません。CodeDom では、プロセスが使用しているユーザー アカウントを使用してコンパイルしようとするため、ユーザーが TEMP ディレクトリへのアクセス権を持っていない場合、コンパイルはできません。TEMP ディレクトリの場所を見つけるには、Path.GetTempPath() API を使用してください。
とのエラーが発生します。
環境
.NET Framework2.0(C#/WinForm)
Windows7
補足
TEMPの内容
Path.GetTempPath()で取得すると「C:\Users\hogehoge\AppData\Local\Temp\」
となっており、問題は無さそうです。
テストプログラムのエラー(添付にファイル作成)
System.UnauthorizedAccessException: パス 'C:\Users\hogehoge\AppData\Local\Temp\null.txt' へのアクセスが拒否されました。
以上
No.1ベストアンサー
- 回答日時:
エラーメッセージを見る限り、
> 環境変数TEMPにアクセスエラーでファイルが書き込めない
ではなくて、TEMPフォルダに書き込みできないってエラーでは?
> Path.GetTempPath()で取得すると「C:\Users\hogehoge\AppData\Local\Temp\」
のTEMPフォルダを右クリック-[プロパティ]の「セキュリティ」タブで、ID'{0}'というユーザー(?)からの書き込みを許可しているかどうか確認してみては?
見た感じ、ユーザー名:hogehogeのフォルダですから、同じレベルのユーザーにはアクセス許可無い場合はあるかも。

No.3
- 回答日時:
>パス 'C:\Users\hogehoge\AppData\Local\Temp\null.txt' へのアクセスが拒否されました。
C:\Users\hogehoge\AppData\Local\Temp\null.txtを作成したりオープンしたり出来るのは「ユーザー名hogehogeのユーザーのみ」です。
テストプログラムが「hogehoge」以外のユーザーで実行されている場合は、一切、アクセス出来ません。
XmlSerializerも同様で、XmlSerializerを実行しているユーザーがhogehogeじゃない(ID '{0}'のユーザー)場合は、コンパイルできません。
「環境変数TEMPにアクセスできない」のではなくて「環境変数TEMPで示されるフォルダにアクセスできない」のです。
ぶっちゃけ「C:\TEMP\ってフォルダを作って、そのフォルダを、誰でも読み書き可能にして、環境変数TEMPの値をC\TEMP\にしておく」のが、一番楽です。
大昔の古いアプリの中には、環境変数TEMPで示すフォルダの「パス名の長さ」が「32文字以内」である事を想定しているアプリもあるんで「C:\Users\hogehoge\AppData\Local\Temp\」などと言う長いパス名が設定してあったら、色々と問題が起きます。
No.2
- 回答日時:
Vistaが出回りだした頃、ユーザーアカウント制御を無効にするとTEMPにアクセスできなくなるという例がいくつかありましたが……。
Win7で同じかどうかは分かりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 画像編集・動画編集・音楽編集 DVD Styler トラブル解決方法 6 2022/10/29 16:00
- その他(プログラミング・Web制作) pythonをjupiter notebookからmecabで頻出の高い単語の抽出について(Runt 1 2022/12/17 18:08
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- その他(プログラミング・Web制作) Arduinoに関する質問 4 2023/08/07 21:19
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Windows 10 Windows Updateが動作しません 7 2022/08/12 16:26
- Google Drive Googleドライブでのファイルの移動 2 2022/11/01 14:23
- サーバー FTPサーバについて詳しい方(アクセス権のないディレクトリを非表示にする方法) 4 2022/08/22 22:33
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 6 2022/06/08 12:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
このファイルの場所へアクセス...
-
システムイメージを別のHDDに移...
-
複数のフォルダへ同時にファイ...
-
Androidアルバムの画像を消去で...
-
拡張子はなぜ、大文字と小文字...
-
ファイル 「送る」と「コピー...
-
フォルダの中に1個しかファイ...
-
Windowsフォルダ内のファイルと...
-
デスクトップにアイコンを置きたい
-
フォルダの並び替えの項目を固...
-
ファイルの開き方(拡張子なし)
-
ひとつのファイルを一括で複数...
-
ドナルドウズを消す。
-
タスクスケジューラからショー...
-
SDカードをパソコンに落とす...
-
Excelの「アクセシビリティ 検...
-
Wordでのバックアプファイ...
-
デスクトップのアイコンを消し...
-
LAME.EXE をダウンロードしたい...
-
パソコンのスキップとは何ですか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「グループ名またはユーザー名...
-
一部のファイルにアクセスでき...
-
Cドライブ全てをEveryoneフルコ...
-
環境変数TEMPを使用するアプリ...
-
フォルダのアクセス権変更,監...
-
システムイメージを別のHDDに移...
-
外付けHDDのアクセス制限を元に...
-
アクセス権を伝達するコマンドは?
-
フォルダーのアクセス許可はど...
-
このファイルの場所へアクセス...
-
止められないサービスを止める方法
-
ファイル共有で2階層までしか...
-
Everyoneフルコントロールでア...
-
セキュリティー警告ってどんな...
-
別のPCからコピーしたUSBメモリ...
-
アクセスを取得するにはセキュ...
-
Windows7のアクセス許可
-
ホルダもしくはディレクトリの...
-
Windows7でアクセス出来ないフ...
-
拡張属性とは何でしょうか?【X...
おすすめ情報