From 134c20c79464870ab2cd205277c8fdf3e096c73a Mon Sep 17 00:00:00 2001 From: de4dot Date: Wed, 21 Dec 2011 06:39:12 +0100 Subject: [PATCH] Add Win32Path class --- de4dot.code/Win32Path.cs | 56 ++++++++++++++++++++++++++++++++++ de4dot.code/de4dot.code.csproj | 1 + 2 files changed, 57 insertions(+) create mode 100644 de4dot.code/Win32Path.cs diff --git a/de4dot.code/Win32Path.cs b/de4dot.code/Win32Path.cs new file mode 100644 index 00000000..316d6df1 --- /dev/null +++ b/de4dot.code/Win32Path.cs @@ -0,0 +1,56 @@ +/* + Copyright (C) 2011 de4dot@gmail.com + + This file is part of de4dot. + + de4dot is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + de4dot is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with de4dot. If not, see . +*/ + +namespace de4dot.code { + static class Win32Path { + public static string GetFileName(string path) { + if (path == null) + return null; + if (path.Length == 0) + return string.Empty; + var c = path[path.Length - 1]; + if (c == '\\' || c == ':') + return string.Empty; + int index = path.LastIndexOf('\\'); + if (index < 0) + return path; + return path.Substring(index + 1); + } + + public static string GetFileNameWithoutExtension(string path) { + if (path == null) + return null; + var s = GetFileName(path); + int i = s.LastIndexOf('.'); + if (i < 0) + return s; + return s.Substring(0, i); + } + + public static string GetExtension(string path) { + if (path == null) + return null; + var s = GetFileName(path); + int i = s.LastIndexOf('.'); + if (i < 0) + return string.Empty; + return s.Substring(i); + } + } +} diff --git a/de4dot.code/de4dot.code.csproj b/de4dot.code/de4dot.code.csproj index 21dd27fa..2f09032e 100644 --- a/de4dot.code/de4dot.code.csproj +++ b/de4dot.code/de4dot.code.csproj @@ -184,6 +184,7 @@ +