web-dev-qa-db-ja.com

現在の作業ディレクトリパスC#を取得するには?

プロジェクトにカーソルファイルがあります。コードで絶対パスを指定しました

F:/r.cur  

問題はこれがハードコーディングされたパスであり、相対パスが必要なので、ソリューションを別のシステムに移動してもコードが影響しないようにします。

相対パスの設定方法を提案してください

//current code i am using 
 p.Cursor = new Cursor("F:/r.cur");
37
yogeshkmrsoni01

静的なDirectoryクラスを使用できます-ただし、現在のディレクトリは、プロセスが開始された元のディレクトリとは異なります。

System.IO.Directory.GetCurrentDirectory();

したがって、次を使用して、アプリケーション実行可能ファイルのディレクトリパスを取得できます。

System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath);
48
Pavel Cermak

use Application.StartupPath は、アプリケーションを起動した実行可能ファイルのパスを返します。

        string pathCur = Path.Combine(Application.StartupPath, @"..\..\r.cur");
        Cursor = new Cursor(pathCur);
4
BRAHIM Kamel

また得ることができます
System.IO.Directory.GetCurrentDirectory();
ただし、binおよびdebugフォルダーも表示されます。これらのフォルダーが必要ない場合は、コードを使用できます。

string page = "E:\abccom\Cat\Mouse.aspx"

string name = Path.GetFileName(page );
string nameKey = Path.GetFileNameWithoutExtension(page );
string directory = Path.GetDirectoryName(page );

Console.WriteLine("{0}, {1}, {2}, {3}",
page, name, nameKey, directory);

出力:

GetFileName:Mouse.aspx
GetFileNameWithoutExtension:マウス
GetDirectoryName:E:\ abccom\Cat

Happy Coding:)

3
Alam Usmani

System.IO.Directory.GetCurrentDirectory()を使用して、現在の作業ディレクトリを取得できます。現在の実行可能パスが返されます。

ありがとう

0
Srikanth

Application.StartupPathは、アプリケーションが実行されている場所からアプリケーションパスを提供する必要があります。アプリケーションフォルダの下にディレクトリ構造を作成します。たとえば、「C:\ Program Files\MyApp」が私のアプリケーションフォルダーである場合、その下にcursorsという名前のフォルダー(C:\ Program Files\MyApp\Cursors ")を作成し、このフォルダー内にすべてのカーソルを配置します。

0
Sandeep

System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName)は起動時にフルパスを提供します。

その後、*本当に何かを見つけたい場合開発中(他の回答ポイントのコメントとして)*、最初にFileInfo(thestringwithfilenamepath).Directory.Nameを使用してパスを見つけます。

0
ilias iliadis