В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
// using System.Text.RegularExpressions;
/// <summary>
/// Regular expression built for C# on: Tue, Oct 21, 2008, 02:34:30 PM
/// Using Expresso Version: 3.0.2766, http://www.ultrapico.com
///
/// A description of the regular expression:
///
/// Any character that is NOT in this class: [\\], any number of repetitions
/// End of line or string
///
///
/// </summary>
public static Regex regex = new Regex(
@"[^\\]*$",
RegexOptions.IgnoreCase
| RegexOptions.CultureInvariant
| RegexOptions.IgnorePatternWhitespace
| RegexOptions.Compiled
);
ОБНОВЛЕНИЕ: удаленная начинающаяся наклонная черта
Почему необходимо использовать регулярные выражения?.NET имеет встроенное Path.GetFileName()
метод специально для этого, которое работает через платформы и файловые системы.
Вот один подход:
string filename = Regex.Match(filename, @".*\\([^\\]+$)").Groups[1].Value;
В основном, это соответствует всему между самой последней обратной косой чертой и концом строки. Конечно, как Вы упомянули, с помощью Пути. GetFileName () намного легче и обработает много пограничных случаев, которые являются болью для обработки с regex.
Короче:
string filename = Regex.Match(fullpath, @"[^\\]*$").Value;
Или:
string filename = Regex.Match(fullpath, "[^\\"+System.IO.Path.PathSeparator+"]*$").Value;
Без Regex
:
string[] pathparts = fullpath.Split(new []{System.IO.Path.PathSeparator});
string file = pathparts[pathparts.Length-1];
официальная поддержка библиотеки Вы упомянули:
string file = System.IO.Path.GetFileName(fullpath);
Необходимо скорее использовать Систему. Класс пути. Это будет означать, что необходимо будет волноваться о меньше, если Вы когда-нибудь решаете поддерживать Моно / Linux (пример dlamblin принимает разделитель пути во внимание, но можно получить странную ОС, которая имеет странные пути). Система. Класс пути может также объединить два пути к одному. Так, например:
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "My App Stuff");
разрешил бы:
\w+:\\(\w+\\)*(?<file>\w*\.\w*)
Этому, очевидно, было бы нужно расширение для покрытия всех символов пути, но именованная группа "файл" содержит имя файла для данного пути в качестве примера.