2015-03-12

http://anond.hatelabo.jp/20150312122358

マジレスすると、U+00a5なら使える。俺なら設計修正させるけど。

Path.GetInvalidFileNameChars メソッド (System.IO)

using System;
using System.IO;

namespace TestInvalidFileName
{
    class Program
    {
        static void Main(string[] args)
        {
            // Get a list of invalid file characters.
            char[] invalidFileChars = Path.GetInvalidFileNameChars();

            Console.WriteLine("The following characters are invalid in a filename:");
            ShowChars(invalidFileChars);
            Console.WriteLine();

            string fileName = '\u00a5' + "108";
            using (var fs = File.Create(fileName))
            {
                if (fs != null)
                {
                    Console.WriteLine("File was created:" + fileName);
                    fs.Close();
                }
                else {
                    Console.WriteLine("File was not created:" + fileName);
                }
            }
        }

        public static void ShowChars(char[] charArray)
        {
            Console.WriteLine("Char\tHex Value");
            // Display each invalid character to the console.
            Array.Sort(charArray);
            foreach (char someChar in charArray)
            {
                if (Char.IsWhiteSpace(someChar))
                {
                    Console.WriteLine(",\t{0:X4}", (int)someChar);
                }
                else
                {
                    Console.WriteLine("{0:c},\t{1:X4}", someChar, (int)someChar);
                }
            }

        }
    }
}
The following characters are invalid in a filename:
Char    Hex Value
(中略)
",      0022
**,      002A
/,      002F
:,      003A
>,      003C
>,      003E
?,      003F
\,      005C
|,      007C

File was created:\108
記事への反応 -
  • 「この計算結果をCSVファイルに出力する時に値段をファイル名に入れるってあるんですが、半角の¥マークはファイル名に入りませんよ」 「設計書はハンコもらっちゃったのでなんとか...

    • マジレスすると、U+00a5なら使える。俺なら設計を修正させるけど。 Path.GetInvalidFileNameChars メソッド (System.IO) using System;using System.IO;namespace TestInvalidFileName{ class Program { static void Main(...

    • バックスラッシュは無理かもしれないが、Unicodeの円記号は使えるんじゃないか? http://ja.wikipedia.org/wiki/%E5%86%86%E8%A8%98%E5%8F%B7#.E7.AC.A6.E5.8F.B7.E4.BD.8D.E7.BD.AE

    • JPYじゃいかんのか?

    • UNIXでも無理っぽいけど? ちなみにこれ読んで「設計書書いた糞馬鹿と、それにハンコ押す超糞馬鹿」と思ったよ。

      • Unix(とUnixで使われる大抵のファイルシステム)ではU+005cはファイル名に使えるよ。いちいちエスケープしないとならない場合が増えて手間だけど。 あと大元の話だが、時系列としては(1)...

    • http://anond.hatelabo.jp/20150312122358 「電子帳票の内容をエクセルを自動で出力するってのはいいのですが、この項目を○で囲んだ数字にするって、20も30も数字があったら足りないですよ? あ...

    • http://anond.hatelabo.jp/20150312122358 「電子帳票の内容をエクセルを自動で出力するってのはいいのですが、この項目を○で囲んだ数字にするって、20も30も数字があったら足りないですよ? あ...

    • http://anond.hatelabo.jp/20150312122358 「電子帳票の内容をエクセルを自動で出力するってのはいいのですが、この項目を○で囲んだ数字にするって、20も30も数字があったら足りないですよ? あ...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん