相关疑难解决方法(0)

你可以使用多个过滤器调用Directory.GetFiles()吗?

我正在尝试使用该Directory.GetFiles()方法来检索多种类型的文件列表,例如mp3's和jpg's.我试过以下两个都没有运气:

Directory.GetFiles("C:\\path", "*.mp3|*.jpg", SearchOption.AllDirectories);
Directory.GetFiles("C:\\path", "*.mp3;*.jpg", SearchOption.AllDirectories);
Run Code Online (Sandbox Code Playgroud)

有没有办法在一个电话中执行此操作?

.net c# filesystems

338
推荐指数
14
解决办法
36万
查看次数

Directory.EnumerateFiles与Directory.GetFiles有什么区别?

Directory.EnumerateFilesvs 之间有什么区别GetFiles

显然,一个返回一个数组,另一个返回Enumerable.

还要别的吗?

.net c# directory io

132
推荐指数
3
解决办法
4万
查看次数

在文件夹中查找具有特定扩展名的文件

给定文件夹路径(如C:\Random Folder),如何在其中找到包含特定扩展名的文件,例如txt?我假设我必须*.txt在目录中进行搜索,但我不确定我应该首先开始这个搜索.

c# filepath

89
推荐指数
3
解决办法
13万
查看次数

具有多个扩展名的GetFiles

可能重复:
您可以使用多个过滤器调用Directory.GetFiles()吗?

如何过滤多个分机?

我试过了:

FileInfo[] Files = dinfo.GetFiles("*.jpg;*.tiff;*.bmp");
FileInfo[] Files = dinfo.GetFiles("*.jpg,*.tiff,*.bmp");
Run Code Online (Sandbox Code Playgroud)

.net c# getfiles fileinfo

85
推荐指数
5
解决办法
12万
查看次数

如何使用多个条件过滤Directory.EnumerateFiles?

我有以下代码:

List<string> result = new List<string>();

foreach (string file in Directory.EnumerateFiles(path,"*.*",  
      SearchOption.AllDirectories)
      .Where(s => s.EndsWith(".mp3") || s.EndsWith(".wma")))
       {
          result.Add(file);                 
       }
Run Code Online (Sandbox Code Playgroud)

它工作正常,做我需要的.除了一件小事.我想找到一种更好的方法来过滤多个扩展.我想使用带有过滤器的字符串数组,例如:

string[] extensions = { "*.mp3", "*.wma", "*.mp4", "*.wav" };
Run Code Online (Sandbox Code Playgroud)

使用.NET Framework 4.0/LINQ执行此操作的最有效方法是什么?有什么建议?

我很感激任何帮助成为偶尔的程序员:-)

.net c#

72
推荐指数
6
解决办法
7万
查看次数

使用正则表达式有效地测试"EndsWith"

我需要构建一个Regex(.NET语法)来确定字符串是否以特定值结尾.具体来说,我需要测试一个文件是否具有特定的扩展名(或一组扩展名).

我正在尝试修复的代码使用:

.*\.(png|jpg|gif)$
Run Code Online (Sandbox Code Playgroud)

这在我的场景中失败的比赛非常缓慢(可能是由于回溯.

简单地删除.*(这是因为API仅测试匹配并且不提取任何内容),这使得正则表达式更加高效.

它仍然感觉效率非常低.我错过了一些明显的东西吗?

不幸的是,我没有控制有问题的API所以我需要一个正则表达式才能做到这一点,即使我通常不认为正则表达式是适合这项工作的工具.

我也做了一些测试使用,RegexOptions.RightToLeft并发现我可以从我的测试用例中挤出更多的性能^.*\.(png|jpg|gif)$,但是我找不到RightToLeft在正则表达式字符串中指定选项的方法所以我不认为我可以使用它.

c# regex

10
推荐指数
2
解决办法
2万
查看次数

如何正确计算文件夹中的文件数

我正在制作一个文件夹列表,其中每个文件夹只需要几个属性,所以我使用下面的类.但是,无论文件夹如何,该FilesInFolder属性总是比文件夹中的实际文件数多5.

有人可以帮我找出问题所在吗?谢谢.

Public Class Single_Action_Folder

    Public ReadOnly FullName As String = ""
    Public ReadOnly Name As String = ""
    Public ReadOnly FilesInFolder As Integer = 0
    Public ReadOnly Exists As Boolean = False

    '**
    ' Constructor
    '*
    Public Sub New(Optional dir As DirectoryInfo = Nothing)

        ' First check that a directory has been specified
        If dir Is Nothing Then Exit Sub

        ' Populate the class properties
        FullName = dir.FullName
        Name = dir.Name
        FilesInFolder = dir.GetFiles().Count
        Exists = dir.Exists …
Run Code Online (Sandbox Code Playgroud)

vb.net file count

4
推荐指数
1
解决办法
3万
查看次数

删除c#中多种文件类型的文件

我有以下解决方案删除只有一个扩展名的单个文件类型; 但是我试图找到一种方法来合并多个文件扩展名,例如:.wma, .mp3, .wav

DirectoryInfo di = new DirectoryInfo(@"C:\");
FileInfo[] files = di.GetFiles("*.mpeg")
                     .Where(p => p.Extension == ".mpeg").ToArray();
foreach (FileInfo file in files)
    try
    {
        file.Attributes = FileAttributes.Normal;
        File.Delete(file.FullName);
    }
    catch { }
Run Code Online (Sandbox Code Playgroud)

c#

2
推荐指数
3
解决办法
1931
查看次数

在目录中搜索.NET中几种类型的所有文件

假设我有一个像" .vcproj; .csproj;*.sln "这样的字符串,我想在目录中显示这些类型的所有文件...... Windows一直使用打开文件对话框来完成此操作.

我知道Directory.GetFiles但它只允许我运行一个给定的搜索模式,所以我必须分割我的输入,然后循环每个.

在完成所有打开文件对话框后,是否没有内置功能来执行此操作?

.NET 2所以没有LINQ聪明可用!

.net c# .net-2.0

0
推荐指数
1
解决办法
252
查看次数

Directory.GetFiles 仅通过 SearchPattern 排除某些文件名

假设我在 C:\temp\someFolder 中有“a.txt”、“ab.txt”、“c.txt”文件。

我想获取所有 .txt 文件并从结果中过滤“ab.txt”,但只能通过 SearchPattern 执行此操作。

我希望能够做类似的事情

Directory.GetFiles("C:\\temp", "*.txt -ab", System.IO.SearchOption.AllDirectories)
Run Code Online (Sandbox Code Playgroud)

而不是在GetFiles函数外部进行过滤。

有办法吗?

c#

0
推荐指数
1
解决办法
2212
查看次数

标签 统计

c# ×9

.net ×5

.net-2.0 ×1

count ×1

directory ×1

file ×1

fileinfo ×1

filepath ×1

filesystems ×1

getfiles ×1

io ×1

regex ×1

vb.net ×1