所以我正在开发一个程序,它将列出目录中的所有文件。很简单。基本上,当我这样做时:List<string> dirs = new List<string>(Directory.EnumerateFiles(target));
,我不希望它包含目录和所有内容。只是文件名。当我运行我的代码时;
List<string> dirs = new List<string>(Directory.EnumerateFiles(target));
Console.WriteLine($"Folders and files in this directory:\n");
foreach (string i in dirs) {
Console.WriteLine($"> {i}");
}
它给了我以下信息:
C:\Users\Camden\Desktop\Programming\Visual Studio\C#\DirectoryManager\DirectoryManager\bin\Debug\DirectoryManager.exe
我只想要 DirectoryManager.exe 部分,所以我查了一下,发现您可以替换字符串中的字符串。像这样:i.Replace(target, "");
.然而,这并没有做任何事情,它只是像往常一样运行。为什么它不替换,我应该如何替换?
最佳答案
使用 System.IO.Path 类中的方法。
var fullfile = @"C:\Users\Camden\Desktop\Programming\Visual Studio\C#\DirectoryManager\DirectoryManager\bin\Debug\DirectoryManager.exe";
var fileName = Path.GetFileName(fullfile); // DirectoryManager.exe
var name = Path.GetFileNameWithoutExtension(fullfile); // DirectoryManager
关于c# - 如何从 EnumerateFiles 中删除目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50081190/