web-dev-qa-db-ja.com

C#-パスからファイル名と拡張子を抽出する方法は?

だから、私が持っていると言う

string path = "C:\\Program Files\\Program\\File.exe";

「File.exe」のみを取得するにはどうすればよいですか?私はスプリットで何かを考えていました(以下を参照)が、私が試したのはうまくいきません...

これは私のコードです。

        List<string> procs = new List<string>(); //Used to check if designated process is already running
        foreach (Process prcs in Process.GetProcesses())
            procs.Add(prcs.ProcessName); //Add each process to the list
        foreach (string l in File.ReadAllLines("MultiStart.txt")) //Get list of processes (full path)
            if (!l.StartsWith("//")) //Check if it's commented out
                if (!procs.Contains(l.Split('\\')[l.Split('\\').Length - 1])) //Check if process is already running
                    Process.Start(l);

私はたぶん初心者です。 ._。

25
CrimsonDeath

System.IOには、ファイルとディレクトリを操作するためのさまざまなクラスがあります。それらの間で、最も便利なものの1つはPathで、これにはファイルやフォルダーを操作するための静的ヘルパーメソッドがたくさんあります。

Path.GetExtension(yourPath); // returns .exe
Path.GetFileNameWithoutExtension(yourPath); // returns File
Path.GetFileName(yourPath); // returns File.exe
Path.GetDirectoryName(yourPath); // returns C:\Program Files\Program
83
manman

Path.GetFileName(string)を探しています。

15
SLaks

最後の文字検索を使用すると、正しい結果を得ることができます。

string path = "C:\\Program Files\\Program\\fatih.gurdal.docx";
string fileName = path.Substring(path.LastIndexOf(((char)92))+ 1);
int index = fileName.LastIndexOf('.');
string onyName= fileName.Substring(0, index);
string fileExtension = fileName.Substring(index + 1);
Console.WriteLine("Full File Name: "+fileName);
Console.WriteLine("Full File Ony Name: "+onyName);
Console.WriteLine("Full File Extension: "+fileExtension);

出力:

完全なファイル名:fatih.gurdal.docx

完全なファイルオニ名:fatih.gurdal

完全なファイル拡張子:docx

6
Fatih GÜRDAL