Как избежать недопустимых символов в именах файлов на нескольких FS - PullRequest
1 голос
/ 03 февраля 2010

Как я могу избежать недопустимых символов в именах файлов? Я задаю этот вопрос один раз перед и записываю класс с решением. Теперь я хотел бы расширить его. Мой сайт сможет определить, на какой ОС работает пользователь. Исходя из этого, я либо 1) хочу сбежать в зависимости от FS / OS, в которой находится пользователь, либо 2) избежать его, чтобы он работал на всех файловых системах.

Какие символы могут быть действительными в Windows 7 или Linux (я не уверен, что установлена ​​моя текущая ОС Linux) и недействительными в XP или действительны в Windows или Mac, а не в Linux?

Ответы [ 2 ]

1 голос
/ 03 февраля 2010

Будет ли когда-либо отображаться имя каталога для пользователя, и если да, то должно ли оно выглядеть как имя пользователя (основываясь на информации в другом вопросе)? Если нет, вы можете разделить его на массив символов, преобразовать значение каждого символа в его шестнадцатеричное представление и поместить их вместе в строку. Это должно работать в любой файловой системе.

private static string ToHexString(string input)
{
    return string.Join("", input.ToCharArray()
        .Select(c => string.Format("{0:x}", (int)c))
        .ToArray());
}
0 голосов
/ 08 февраля 2010

1001 * Решения *

  1. Сделать их [A-Za-z._-] и экранировать символы, которые не попадают в диапазон
  2. Выберите поддерживаемую ОС и FS и выясните, что является незаконным или нет, и поддержите их до дальнейшего уведомления
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...