如何只打印最后一个文件夹的数组名称
How to print only the last folder's name of array
代码如下所示:
DirectoryInfo d = new DirectoryInfo(@"c:\a\folder");
DirectoryInfo[] Dirs = d.GetDirectories();
foreach (var item in Dirs)
{
Console.WriteLine("The folders:{0}", item.ToString());
}
并打印出:
文件夹:c:\a\folder\foldertozip
但我只想打印 foldertozip。我怎样才能做到这一点?
谢谢你帮我。
您可以拆分并获得最后一个
item.ToString().Split("\").Last();
或者更好,使用 DirectoryInfo.Name
属性: https://docs.microsoft.com/en-us/dotnet/api/system.io.directoryinfo.name?view=netframework-4.8#System_IO_DirectoryInfo_Name
This Name property returns only the name of the directory, such as "Bin". To get the full path, such as "c:\public\Bin", use the FullName property.
只需将 item.ToString()
更改为 item.Name
:
DirectoryInfo d = new DirectoryInfo(@"c:\a\folder");
DirectoryInfo[] Dirs = d.GetDirectories();
foreach (var item in Dirs)
{
Console.WriteLine("The folders:{0}", item.Name);
}
item -> 将包含整个目录,因此,如果您只想要 Folder/SubFolder 的名称,那么执行 toString 不是一个选项
看到有方法 "Name",您可以通过在 console.WriteLine() 中调用 item.Name 来使用它,而不是 item.toString()
foreach (var item in Dirs)
{
Console.WriteLine("The folders:{0}", item.Name());
}
或者您可以这样做:Getting the folder name from a path
我可能会使用类似的东西:
string path = "C:/folder1/folder2/file.txt";
string lastFolderName = Path.GetFileName( Path.GetDirectoryName( path ) );
对 GetDirectoryName 的内部调用将 return 完整路径,而对 GetFileName() 的外部调用将 return 最后一个路径组件 - 这将是文件夹名称。
无论路径是否实际存在,这种方法都有效。但是,这种方法确实依赖于最初以文件名结尾的路径。如果不知道路径是以文件名还是文件夹名结尾 - 那么它要求您首先检查实际路径以查看该位置是否存在 file/folder。
代码如下所示:
DirectoryInfo d = new DirectoryInfo(@"c:\a\folder");
DirectoryInfo[] Dirs = d.GetDirectories();
foreach (var item in Dirs)
{
Console.WriteLine("The folders:{0}", item.ToString());
}
并打印出:
文件夹:c:\a\folder\foldertozip
但我只想打印 foldertozip。我怎样才能做到这一点? 谢谢你帮我。
您可以拆分并获得最后一个
item.ToString().Split("\").Last();
或者更好,使用 DirectoryInfo.Name
属性: https://docs.microsoft.com/en-us/dotnet/api/system.io.directoryinfo.name?view=netframework-4.8#System_IO_DirectoryInfo_Name
This Name property returns only the name of the directory, such as "Bin". To get the full path, such as "c:\public\Bin", use the FullName property.
只需将 item.ToString()
更改为 item.Name
:
DirectoryInfo d = new DirectoryInfo(@"c:\a\folder");
DirectoryInfo[] Dirs = d.GetDirectories();
foreach (var item in Dirs)
{
Console.WriteLine("The folders:{0}", item.Name);
}
item -> 将包含整个目录,因此,如果您只想要 Folder/SubFolder 的名称,那么执行 toString 不是一个选项
看到有方法 "Name",您可以通过在 console.WriteLine() 中调用 item.Name 来使用它,而不是 item.toString()
foreach (var item in Dirs)
{
Console.WriteLine("The folders:{0}", item.Name());
}
或者您可以这样做:Getting the folder name from a path
我可能会使用类似的东西:
string path = "C:/folder1/folder2/file.txt";
string lastFolderName = Path.GetFileName( Path.GetDirectoryName( path ) );
对 GetDirectoryName 的内部调用将 return 完整路径,而对 GetFileName() 的外部调用将 return 最后一个路径组件 - 这将是文件夹名称。
无论路径是否实际存在,这种方法都有效。但是,这种方法确实依赖于最初以文件名结尾的路径。如果不知道路径是以文件名还是文件夹名结尾 - 那么它要求您首先检查实际路径以查看该位置是否存在 file/folder。