.NET Core でのクロスプラットフォームのファイル名処理 質問する

.NET Core でのクロスプラットフォームのファイル名処理 質問する

System.IOWindows と Linux で動作するように、クラス内のファイル名をクロスプラットフォーム方式で処理するにはどうすればよいですか?

たとえば、Windows では完璧に動作する次のコードを記述しますが、Ubuntu Linux ではファイルが作成されません。

var tempFilename = $@"..\Data\uploads\{filename}";
using (FileStream fs = System.IO.File.Create(tempFilename))
{
    file.CopyTo(fs);
    fs.Flush();                    
}

ベストアンサー1

以下のように Path.DirectorySeparatorChar を使用することもできます。

 Console.WriteLine("..{0}Data{0}uploads{0}{{filename}}", Path.DirectorySeparatorChar);

参照:マイクロソフト

おすすめ記事