Есть ли в .NET'е возможность проверки допустимости имени файла?
Т.е. ввели имя файла — проверить, можно ли создать файл с таким именем.
Не охода regexp'ами это дело проверять.
Проверка допустимости имени файла
От:
Аноним
Дата:
05.09.05 07:27
Оценка:
Можно проще — попробовать создать файл и, если не получится, отловить соответствующий exception. Либо, что еще проще, осуществить проверку на недопустимые символы и слишком большую длину имени (см. MSDN).
Здравствуйте, Аноним, Вы писали:
А>Есть ли в .NET'е возможность проверки допустимости имени файла? А>Т.е. ввели имя файла — проверить, можно ли создать файл с таким именем. А>Не охода regexp'ами это дело проверять.
if (YourPath.IndexOfAny(Path.InvalidPathChars) > -1)
Hello, "Stewe" > > А>Есть ли в .NET'е возможность проверки допустимости имени файла? > А>Т.е. ввели имя файла — проверить, можно ли создать файл с таким именем. > А>Не охода regexp'ами это дело проверять. > >
> if (YourPath.IndexOfAny(Path.InvalidPathChars) > -1)
>
Этого явно не достаточно. некоторые имена файлов могут быть зарезервированы.
Например, nul, con и т.п.
Posted via RSDN NNTP Server 1.9
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[2]: Проверка допустимости имени файла
От:
Аноним
Дата:
05.09.05 08:53
Оценка:
Здравствуйте, Stewe, Вы писали:
S>Здравствуйте, Аноним, Вы писали:
А>>Есть ли в .NET'е возможность проверки допустимости имени файла? А>>Т.е. ввели имя файла — проверить, можно ли создать файл с таким именем. А>>Не охода regexp'ами это дело проверять.
S>
All members of the Path class are static and can therefore be called without having an instance of a path.
Note In members that accept a path as an input string, that path must be well-formed or an exception is raised. For example, if a path is fully qualified but begins with a space, the path is not trimmed in methods of the class. Therefore, the path is malformed and an exception is raised. Similarly, a path or a combination of paths cannot be fully qualified twice. For example, "c:\temp c:\windows" also raises an exception in most cases. Ensure that your paths are well-formed when using methods that accept a path string.
Так что используйте какой нибудь метод класса Path,
в случае чего он кинет exception
если хочется еще и *.* и т.п., можно попытаться использовать
Directory.GetFiles Method (String, String)
и посмотреть, не выкинет ли исключение.
[msdn]ArgumentException — path is a zero-length string, contains only white space, or contains one or more invalid characters as defined by InvalidPathChars.
-or-
searchPattern does not contain a valid pattern.
PathTooLongException — The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters. [/msdn]
Здравствуйте, <Аноним>, Вы писали:
А>Есть ли в .NET'е возможность проверки допустимости имени файла? А>Т.е. ввели имя файла — проверить, можно ли создать файл с таким именем. А>Не охода regexp'ами это дело проверять.
Мне кажется этого просто не нужно делать. Создавай файл с заданным имененм. Если не создастся, выдашь сообщение об ошибки.
... << RSDN@Home 1.2.0 alpha rev. 606>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.