在我的硬盘驱动器的特定文件夹中,我已经存储了许多其他子文件夹和文件.现在我想按部分名称列出这些文件夹和文件名.
for example
--------------
c webapi xx folder
c mvctutorial xx folder
done webapi xx folder
webapi done folder
webapi.zip file
mvc.iso file
Run Code Online (Sandbox Code Playgroud)
现在,当我想通过部分名称webapi搜索,然后我想获得具有webapi字的文件和文件夹名称列表.我想在网格中显示他们的完整文件夹或文件名及其完整路径和大小.喜欢以下方式.
Name Type location Size
----- ------ --------- -------
c webapi xx folder c:\test1 2 KB
c mvctutorial xx folder c:\test3 3 KB
done webapi xx folder c:\test1 11 KB
webapi done folder c:\test1 9 KB
webapi.zip file c:\test1 20 KB
mvc.iso file c:\test4 5 KB
Run Code Online (Sandbox Code Playgroud)
我有一个示例代码,看起来像查找文件,但下面的代码可能找不到文件夹.所以我正在寻找一个可以找到文件和文件夹的示例代码.所以指导我解决我的问题.
下面的示例代码将查找文件,但不确定它是否按部分名称查找文件.这是代码.我不是在开发环境之前.所以无法测试下面的代码.
static void Main(string[] args)
{
string partialName = "webapi";
DirectoryInfo hdDirectoryInWhichToSearch = new DirectoryInfo(@"c:\");
FileInfo[] filesInDir = hdDirectoryInWhichToSearch.GetFiles("*" + partialName + "*.*");
foreach (FileInfo foundFile in filesInDir)
{
string fullName = foundFile.FullName;
Console.WriteLine(fullName);
}
}
Run Code Online (Sandbox Code Playgroud)
还有一种DirectoryInfo[] GetDirectories(string searchPattern)方法DirectoryInfo:
static void Main(string[] args)
{
string partialName = "webapi";
DirectoryInfo hdDirectoryInWhichToSearch = new DirectoryInfo(@"c:\");
FileInfo[] filesInDir = hdDirectoryInWhichToSearch.GetFiles("*" + partialName + "*.*");
DirectoryInfo[] dirsInDir = hdDirectoryInWhichToSearch.GetDirectories("*" + partialName + "*.*");
foreach (FileInfo foundFile in filesInDir)
{
string fullName = foundFile.FullName;
Console.WriteLine(fullName);
}
foreach (DirectoryInfo foundDir in dirsInDir )
{
string fullName = foundDir.FullName;
Console.WriteLine(fullName);
}
}
Run Code Online (Sandbox Code Playgroud)
如果您只需要全名,可以使用更通用的类型“FileSystemInfo”。
static void Main(string[] args)
{
string partialName = "webapi";
DirectoryInfo hdDirectoryInWhichToSearch = new DirectoryInfo(@"c:\");
FileSystemInfo[] filesAndDirs = hdDirectoryInWhichToSearch.GetFileSystemInfos("*" + partialName + "*");
foreach (FileSystemInfo foundFile in filesAndDirs)
{
string fullName = foundFile.FullName;
Console.WriteLine(fullName);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑: 如果您需要专用类型的方法,您仍然可以在 foreach 循环中转换为该方法:
foreach (FileSystemInfo foundFile in filesAndDirs)
{
string fullName = foundFile.FullName;
Console.WriteLine(fullName);
if (foundFile.GetType() == typeof(FileInfo))
{
Console.WriteLine("... is a file");
FileInfo fileInfo = (FileInfo)foundFile;
Console.WriteLine("Extension: " + fileInfo.Extension);
}
if (foundFile.GetType() == typeof(DirectoryInfo))
{
Console.WriteLine("... is a directory");
DirectoryInfo directoryInfo = (DirectoryInfo)foundFile;
FileInfo[] subfileInfos = directoryInfo.GetFiles();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15127 次 |
| 最近记录: |