プログラムの事とか

お約束ですが「掲載内容は私個人の見解です」

フォルダ名の最後がスペースのフォルダを作る (作れない)

作れません

知っている人は当たり前だと思うかもしれませんが、そんな名前のフォルダ作ろうなんて思ったこともなかったので知らなかったよ

試してみる

Explorer

f:id:puni-o:20181108183446j:plain

こうすると

f:id:puni-o:20181108183458j:plain

こうなります。勝手に最後のスペースが消されます。警告とかそーいうの出ません

勝手に省略しないで

f:id:puni-o:20181108183517j:plain

こっちの仲間に入れてあげればいいのに

C#でやってみる

// 最後がスペースのパス
var path = @"g:\test ";
try
{
    Directory.CreateDirectory(path);  // これは正常終了する
}
catch
{
    Console.WriteLine("しっぱい");  // 例外とか吐かない
}

if (Directory.Exists(path))  // これもtrueが返ってくる
{
    var file = Path.Combine(path, "a.txt");  // あるはずフォルダの下にテキストを書いてみる
    try
    {
        File.WriteAllText(file, "にゃーん");
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);  // 「パス 'g:\test \a.txt' の一部が見つかりませんでした。」
    }
}

Oh...

せめてDirectory.Exists()falseを返してほしいんだけど・・なんか歴史的な経緯とかあるのかな~