• ベストアンサー

C#のプログラムで作業フォルダを取得できない (IIS5.1+.NET

C#のプログラムで作業フォルダを取得できない (IIS5.1+.NET 2005) IIS5.1のサイトで、C#で作ったプログラムを実行します。 プログラムは同じフォルダーにあるiniファイルを読み込んで作業します。 問題は、正しい作業フォルダーを取得できないとのことです。 下記のメソッドの戻り値は「c:\windows\system32」になっています。 Directory.GetCurrentDirectory() Environment.CurrentDirectory しかし、それはEXEファイルのフォルダーではないです。 どうやって本当の作業フォルダーを取れますか? ちなみに、当サイトでvb6で作ったプログラムもあります。 そちらは「App.Path」で本当の作業フォルダーを取れます。

質問者が選んだベストアンサー

  • ベストアンサー
  • cotae_bb
  • ベストアンサー率53% (51/95)
回答No.1

string path = System.Reflection.Assembly.GetEntryAssembly().Location; これではだめでしょうか?

get_star
質問者

お礼

できました! 大変ありがとうございました!

関連するQ&A

  • IIS msabcフォルダが削除できない

    IISのセキュリティ対策としてC:\Program Files\Common files\System\msadc フォルダ以下を 削除しようとしているのですが、以下のようなエラーがでて削除できません。 msadcを削除できません。共有違反がありました。 送り側または受け側のファイルが使用中の可能性があります。 なんとかできないものでしょうか? ちなみにIISを停止した状態でも同様の現象です。 強制削除はないのでしょうか?

  • IIS フォルダアクセス

    環境:VS2019 C# MVC webサーバー:windowsサーバー IIS7.0 WEBアプリ:C:\inetpub\wwwrootに配置 書込みたいフォルダのパス:C:\test 上記の環境でWEBアプリのテストをしているのですが、一部のユーザーがWEBアプリがフォルダにファイルを作成する際にエラーとなりフォルダにファイルを作成することができない現象が発生しています。 該当のフォルダには「IIS-USER」で書き込みを許可した権限を付与しております。 またできるユーザーとできないユーザーがいます。 自身の設定が何か足りないとは思うのですが、見当がつかないため質問させていただきました。 ご教授の程よろしくお願いします。

  • ウインドウズフォルダにまつわる事

    VB2008でWindowsXP上でINIファイルの読み書きを行うプログラムを作っています。 VB.NETで特殊フォルダを取得したいのですが、以下の場合、 C:\Windows\System32となるのですが、C:\Windowsのようにウインドウズフォルダを返す方法はありますか? ' System ディレクトリ MessageBox.Show(System.Environment.GetFolderPath(System.Environment.SpecialFolder.System)) あとiniファイルをパスなしで作成するとC:\Windowsに作られるのですが デフォルトでそうなっているのでしょうか? WritePrivateProfileString("キーワード", "項目", 値, "test.ini") exeのあるカレントにiniファイルを作成したい場合などパスを求める方法等も知りたいです。

  • IIS7.0 他コンピュータへのフォルダアクセス

    現在、2003Server R2 SP2、IIS6.0で稼動していたVB.Net aspのプログラムを、2008Server、IIS7.0に移行しているのですが、今まで問題なく動作していたファイルの取得が、うまくいかなくなりました。 別のファイルサーバ上(2003Server R2 SP2)に置いてあるxmlファイルを読み込むという動作をさせたいのですが、エクスプローラ上では問題なく開きます。また、VB.Net aspからのステップ実行でも正しく取得出来ているのです。 しかし、ビルドしてIISの規定のフォルダに置き、IEから呼び出すと読み込めず、ファイルが存在しない場合の処理に入ってしまいます・・ 試しに2008SV側のローカル上にフォルダを置くと、正しく取得します。 ・読み込むフォルダのアクセス権限をEveryOne→フルコントロールに ・2008SVでWindowsFireWallの許可対象に"WorldWideWeb(http)"を追加  →2003SVではF/Wサービスを停止 ・IIS7.0の[アプリケーションプール]  →右クリック[詳細設定]  →プロセスモデルのID変更  →"NetworkService"から"LocalSystem"に変更 上記設定では試してはいるのですが、うまくいきません。 OS、IIS共にバージョンアップしてしまったので、どちらが原因なのか、調査のアタリを付ける方法でも結構です。 どなたかお知恵を貸してください。よろしくお願いいたします。

  • VB2005でC:\ProgramFiles(X86)を取得方法したい

    VB2005でC:\ProgramFiles(X86)を取得方法したい。 VisualBasic2005で開発をしております。 下記のコードですと通常「C:\ProgramFiles」が取得できます。 Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) Windows7 64bitで存在している「C:\ProgramFiles(X86)」フォルダを取得したいと思います。 どのようなコードで可能になるかお教えいただけませんでしょうか。 よろしくお願いいたします。

  • VBA ネットワーク上のファイルでカレントフォルダを取得するには?

    VBA ネットワーク上のファイルでカレントフォルダを取得するには? VBA超初心者でネットで色々調べて、ところどころコピーしながらプログラムを作っています。 ローカルのPCでは問題なく動くまでになったのですが、実際にはネットワーク上の共有サーバで実行したいのですが、ネットワーク上ではカレントパスがうまく設定できていないようで、動きません。 CreateObject("WScript.Shell").CurrentDirectory = ThisWorkbook.Path というコードでVBAが置いてあるフォルダをカレントディレクトリに設定するようにしています。 どのようにしたらネットワークサーバで動くようになりますか?

  • Cドライブ中のプログラムファイルフォルダの削除

    超初心者です。 よろしくお願いします。 Cドライブにある、プログラムファイルの中に いろんなプロバイダ会社のフォルダがあるのですが、 これらって、削除しても良いのですか? 何だか初めからあるみたいだし、 勝手に削除したらいけないのかと思いまして。。 自分のプロバイダ会社のものではないものが多数と、 使わないオークションのプロバイダ、 あと、Cドライブにダイレクトに入っている AOL5.0のフォルダ。。。 本当に使わないので削除したいのですが、 できますか? よろしくお願いします。

  • "Program Files"に "Overland" というフォルダが??

    自分のパソコンのProgram Filesフォルダを覗いてみたところ、\Overlandという名前の見覚えのないフォルダが入っていました。中には、「overland.msi」「Overland.cab」「setup.exe」「setup.ini」「instmsia.exe」「instmsiw.exe」というファイル、および「英数字の羅列.ini」「4桁の数字.mst」が数十個入っています。 これはいったい何のプログラムでしょうか。ウィルスやスパイウェアでなければいいのですが... (ちなみに、Norton InternetSecurityの検査にはひっかかりませんでした)。 よろしくお願いします。

  • フォルダ内にあるファイル名を取得したい

    cを利用して、指定したフォルダの中にある全てのファイルの名前を取得するプログラムを作りたいのですが、適した関数がわかりません。 指定するフォルダはあらかじめ決めうちで、その中には.txtのファイルのみを格納します。 どなたか教えてください。できれば自分で作りたいのでヒントをください。お願いします。 VisualC++.netを使っています。OSはXPです。

  • 指定フォルダの絶対パス取得

    初歩的なことですが教えてください。 VB.netにて、指定したフォルダの相対パスに対する絶対パスの取得を行いたいのですが、良い方法が見つかりません。 「Path.GetFullPath メソッド」を使用して見ましたが、存在しないパス「例:\A\」を指定すると、勝手に「例:C:\A\」のように絶対パスが割り付けられてしまいます。実際に存在するパスを検索して取得することは出来ないのでしょうか? 例:「ABC」というフォルダが「C:\program files」や「D:\」などに存在するという結果です。