LoginSignup
5
6

More than 5 years have passed since last update.

指定した名前のフォルダまでのパスを抽出する

Last updated at Posted at 2014-06-04

よく使うのに忘れてしまうのでメモしときます。

var fullPath = @"C:\Users\user\Dir\Folder\hoge.txt";
var extractingDirName = "Dir";
var extractingStr = Path.DirectorySeparatorChar + extractingDirName + Path.DirectorySeparatorChar;
var idx = fullPath.LastIndexOf(extractingStr);
var extractedPath = fullPath.Substring(0, idx + extractingStr.Length);
Console.WriteLine(extractedPath); // => "C:\Users\user\Dir\"

*@kuchikios さんが指摘くださった問題に対応しました。

--
2015/12/15 追記
プロジェクトフォルダの取得に用いるのが便利だと思います.
(ソリューション名やパスの他の箇所などと重なる場合はこちらの方法が確実です.設定が面倒なのが難点ですが)

public static string GetProjectDirPath()
{
    var execPath = Environment.CurrentDirectory; // 実行ファイルのパス 
    var extractingDirName = "YourProjectName"; // プロジェクト名
    var extractingStr = Path.DirectorySeparatorChar + extractingDirName + Path.DirectorySeparatorChar;
    var idx = execPath.LastIndexOf(extractingStr);
    var projectPath = execPath.Substring(0, idx + extractingStr.Length);
    //Console.WriteLine(projectPath); // => "C:\Users\user\Desktop\SolutionName\YourProjectName\"
    return projectPath;
}
5
6
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6