2022年3月24日 星期四

[C#]String 檔案路徑分割

 

傳入路徑,後面的參數(upLevel)為層級,透過層級來自動切割要哪一些資料

Ex: 

String  str = "C:\\123\\456\\789\\1.Txt";

str  = GetUpLevelDirectory(str,0);

// str = C:\\123\\456\\789

str = GetUpLevelDirectory(str,1);

//C:\\123\\456

str = GetUpLevelDirectory(str,2);

//C:\\123

-------------------------------------------------------------------------------------------------------------

Path.GetFileName()、Path.GetExtension()、Path.GetFileNameWithoutExtension()

這三個方法是同一群的,依序是取得檔案名稱、取得副檔名、取得不包含副檔名的檔案名稱

--------------------------------------------------------------------------------------------------------------

以下為 function

using System.Diagnostics;

private string GetUpLevelDirectory(string path, int upLevel)
{
    var directory = File.GetAttributes(path).HasFlag(FileAttributes.Directory)
        ? path
        : Path.GetDirectoryName(path);

    upLevel = upLevel < 0 ? 0 : upLevel;

    for (var i = 0; i < upLevel; i++)
    {
        directory = Path.GetDirectoryName(directory);
    }

    return directory;
}

沒有留言:

張貼留言

[SQL]顯示千分位與小數顯示

  CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) CONVERT style參數說明 1  (expression為 money 或 smallmoney型別): 0 : 預設,保留小數位後兩位,並四捨...