一千萬個為什麽

搜索

當有多個特定字符時,如何使用IndexOf來選擇特定字符?

如果存在多個特定字符,我如何使用SubString的IndexOf來選擇特定字符?這是我的問題。我想采取路徑“C:\ Users \ Jim \ AppData \ Local \ Temp \”並刪除“Temp \”部分。只留下“C:\ Users \ Jim \ AppData \ Local \”我用下面的代碼解決了我的問題,但這假設“Temp”文件夾實際上被稱為“Temp”。有沒有更好的辦法?謝謝

if (Path.GetTempPath() != null)//Is it there?{
tempDir = Path.GetTempPath(); //Make a string out of it.
int iLastPos = tempDir.LastIndexOf(@"\");
if (Directory.Exists(tempDir) && iLastPos > tempDir.IndexOf(@"\"))
{
   //Take the position of the last "/" and subtract 4.
   //4 is the lenghth of the word "temp".
    tempDir = tempDir.Substring(0, iLastPos - 4);
}}

最佳答案

更好的方法是使用 Directory.GetParent ()<�代碼> DirectoryInfo.Parent </代碼> :在

using System;
using System.IO;

class Test
{
    static void Main()
    {
        string path = @"C:\Users\Jim\AppData\Local\Temp\";
        DirectoryInfo dir = new DirectoryInfo(path);
        DirectoryInfo parent = dir.Parent;
        Console.WriteLine(parent.FullName);
    }    
}

(請註意, Directory.GetParent(path)只是為您提供了Temp目錄,因為它不知道該路徑已經是一個目錄。)

如果你真的想使用 LastIndexOf ,請使用過載,允許您指定起始位置

轉載註明原文: 當有多個特定字符時,如何使用IndexOf來選擇特定字符?