タイトルが結論。
Linux環境で動く.NET Coreアプリを書いていた時、ファイル出力処理でファイルパスを指定する際、下記のようにとりあえず記載してました。
var fileName = AppDomain.CurrentDomain.BaseDirectory + @"\FolderName\fileName";
想定としてはプログラムがあるフォルダにFolderNameというフォルダがあり、その中にfileNameというファイルが生成されるというもの。
Windows環境ではこれで問題なく動くものの、Linux環境に持っていくとファイルが出力されていなかったので確認してみると、プログラムがあるフォルダに FolderName\fileName
という名前のファイルが。
Windows環境ではパスにバックスラッシュを使うのに対し、Linux環境ではスラッシュを使うため、上記の指定だとうまくいかないと。なるほど。
というわけで、Linux環境で動かす場合はスラッシュに置き換えればいいんですが、Windows環境でも動かすことを想定すると、Path.Combineを利用してやるのが最適解のようです。
こんな感じ。
var fileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "FolderName", "fileName");
そもそもパスの指定方法が適当ってのは気にしないで・・・。