macOS dotnet フルパスの文字列からファイル名を取り出す

Path.GetFileName コード例

macOS dotnet 6で、 フルパス文字列からファイル名を取り出すには

System.IO.Path クラス内の GetFileName() を使います

コード例

デスクトップに配置された「Book1.xlsx」のファイル名だけを取り出す場合の

コード例です

//using System.IO;
using System.Diagnostics;

var pathStr = "/Users/xxx/Desktop/Book1.xlsx";
var fileName = Path.GetFileName(pathStr);
Debug.WriteLine(fileName);

ファイル名だけの文字列が表示されました

Swift インスタンスのテキスト表現 CustomStringConvertible

CustomStringConvertible

Swiftでクラスなどのインスタンスをprint()した場合、その中身がなにであるのかを確認できません。(lldbでpoすればいいのだけなんですが。。。)そのような場合CustomStringConvertibleというprotocolを使えばカスタマイズした文字をprint()などに表示できます。

class Novel : CustomStringConvertible{
    var author: String!
    var kana: String!
    init(_author: String, _kana: String) {
        self.author = _author
        self.kana = _kana
    }
    var description: String {
        return "\(self.author!)\(self.kana!))"
    }
}

上記のような感じでCustomStringConvertibleprotocolなので継承して使います。protocolの中にdescriptionを持っていますのでそれを利用します。

let novel1 = Novel(_author: "George Orwell", _kana: "ジョージ・オーウェル")
print(novel1)

上記コードを実行するとdescriptionが呼ばれ「“George Orwell(ジョージ・オーウェル)\n”」が出力されました。下記コードのようにCustomStringConvertiblestructでも利用できます。

struct Novel : CustomStringConvertible {
    var author: String!
    var description: String {
        return self.author
    }
}

let Novel2 = Novel(author: "James Patrick Hogan")
print(Novel2)