os.path.basename ()
Альтернатива System.IO.Path.GetPathRoot(path);
:
System.IO.Path.GetPathRoot("C:\\Foo\\Bar.xml") // Equals C:\\
Редактировать : Вышеприведенное вернуло первый путь пути, где basename
должен вернуть хвост пути. Посмотрите код ниже для примера того, как этого можно достичь.
os.path.split ()
К сожалению, альтернативы этому нет, поскольку нет эквивалента .Net. Самое близкое, что вы можете найти, это System.IO.Path.GetDirectoryName(path)
, однако, если ваш путь был C: \ Foo , то GetDirectoryName
даст вам C: \ Foo вместо C: и Foo . Это сработает, только если вы захотите получить имя каталога фактического пути к файлу.
Так что вам придется написать какой-то код, подобный следующему, чтобы разбить их для вас:
public void EquivalentSplit(string path, out string head, out string tail)
{
// Get the directory separation character (i.e. '\').
string separator = System.IO.Path.DirectorySeparatorChar.ToString();
// Trim any separators at the end of the path
string lastCharacter = path.Substring(path.Length - 1);
if (separator == lastCharacter)
{
path = path.Substring(0, path.Length - 1);
}
int lastSeparatorIndex = path.LastIndexOf(separator);
head = path.Substring(0, lastSeparatorIndex);
tail = path.Substring(lastSeparatorIndex + separator.Length,
path.Length - lastSeparatorIndex - separator.Length);
}