C# 在完整路径c中搜索字符串#

C# 在完整路径c中搜索字符串#,c#,string,search,C#,String,Search,我有很多MP3文件的路径。我正在搜索此数组,以在整个路径中查找与正在搜索的内容匹配的任何内容。它只返回文件名中的匹配项,而不是路径 旧的: 使用系统; 使用System.IO; 使用System.Collections.Generic; 使用System.Linq; 使用系统文本; 名称空间测试 { 班级计划 { 静态void Main(字符串[]参数) { _搜索(“蚂蚁”); Console.Read(); } 静态void\u搜索(字符串变量) { 字符串[]mp3=新字符串[1]; mp

我有很多MP3文件的路径。我正在搜索此数组,以在整个路径中查找与正在搜索的内容匹配的任何内容。它只返回文件名中的匹配项,而不是路径

旧的:

使用系统;
使用System.IO;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
名称空间测试
{
班级计划
{
静态void Main(字符串[]参数)
{
_搜索(“蚂蚁”);
Console.Read();
}
静态void\u搜索(字符串变量)
{
字符串[]mp3=新字符串[1];
mp3=Directory.GetFiles(“c:\”、“*.mp3”、“SearchOption.AllDirectories”);
字符串[]临时=新字符串[1];
int x=0;
for(int i=0;i
新的:

使用系统;
使用System.IO;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
名称空间测试
{
班级计划
{
静态void Main(字符串[]参数)
{
列表搜索=搜索歌曲(“蚂蚁”);
foreach(搜索中的字符串歌曲)
{
控制台。WriteLine(歌曲);
}
}
静态列表搜索歌曲(字符串值)
{
value=value.ToLower();
列表歌曲=新列表();
字符串[]mp3=null;
mp3=Directory.GetFiles(@“c:\users\owner\music\metal\sybride”、“*.mp3”、SearchOption.AllDirectories).ToArray();
foreach(mp3中的字符串项)
{
string LowerCaseItem=item.ToLower();
if(小写项包含(值))
{
歌曲。添加(项目);
}
}
返回歌曲;
}
}
}请尝试以下代码:

 class Program
    {
        static void Main(string[] args)
        {
            PrintItems(Search("John Lennon"));
            PrintFileName(Search("John Lennon"));
            Console.Read();
        }

        static string[] Search(string var)
        {
            return Directory.GetFiles(@"K:\mp3", "*" + var + "*.mp3", SearchOption.AllDirectories);
        }

        static void PrintItems(string[] array)
        {
            for (int i = 0; i < array.Length; i++)
                Console.Write(array[i] + "\n");
        }

        static void PrintFileName(string[] array)
        {
            foreach (var item in array)
            {
                FileInfo fi = new FileInfo(item);
                Console.WriteLine(fi.Name);
            }
        }
    }
类程序
{
静态void Main(字符串[]参数)
{
印刷品(搜索(“约翰·列侬”);
打印文件名(搜索(“约翰·列侬”);
Console.Read();
}
静态字符串[]搜索(字符串变量)
{
返回Directory.GetFiles(@“K:\mp3”,“*”+var+“*.mp3”,SearchOption.AllDirectories);
}
静态无效打印项(字符串[]数组)
{
for(int i=0;i
路径必须作为搜索位置的参数指定

class program    
{

        static void Main(string[] args)
        {
            List<string> search = searchSong("SomeThing");
            foreach (string song in search)
            {
                Console.Writeline(song);
            }
        }

        public List<string> searchSong(string value)
        {
            List<string> songs = new List<string>();
            String[] mp3 = null;
            mp3 = Directory.GetFiles(@"D:\Songs", "*.mp3", SearchOption.AllDirectories).ToArray();
            foreach (String item in mp3)
            {
                if (item.Contains(value))
                {
                    songs.Add(item);
                }
            }
            return songs;
        }

    }
类程序
{
静态void Main(字符串[]参数)
{
列表搜索=搜索歌曲(“某物”);
foreach(搜索中的字符串歌曲)
{
控制台。Writeline(歌曲);
}
}
公共列表搜索歌曲(字符串值)
{
列表歌曲=新列表();
字符串[]mp3=null;
mp3=Directory.GetFiles(@“D:\Songs”,“*.mp3”,SearchOption.AllDirectories).ToArray();
foreach(mp3中的字符串项)
{
如果(项目包含(值))
{
歌曲。添加(项目);
}
}
返回歌曲;
}
}

首先,您应该使用
列表,而不是不断调整数组的大小。我看不出您只是在搜索文件名,因为您使用的是返回文件名(包括其路径)的
GetFiles
+
string.Contains
。我想我找到了答案,出于某种原因,我没有意识到它是区分大小写的:-/你应该发布答案,这样所有人都可以看到:)还没有得到答案,只是意识到我很愚蠢。我实际上得到了正确的路径,但它区分大小写。我没有找到解决方法。使用你的代码和我能解决这个问题!我很感激。
 class Program
    {
        static void Main(string[] args)
        {
            PrintItems(Search("John Lennon"));
            PrintFileName(Search("John Lennon"));
            Console.Read();
        }

        static string[] Search(string var)
        {
            return Directory.GetFiles(@"K:\mp3", "*" + var + "*.mp3", SearchOption.AllDirectories);
        }

        static void PrintItems(string[] array)
        {
            for (int i = 0; i < array.Length; i++)
                Console.Write(array[i] + "\n");
        }

        static void PrintFileName(string[] array)
        {
            foreach (var item in array)
            {
                FileInfo fi = new FileInfo(item);
                Console.WriteLine(fi.Name);
            }
        }
    }
class program    
{

        static void Main(string[] args)
        {
            List<string> search = searchSong("SomeThing");
            foreach (string song in search)
            {
                Console.Writeline(song);
            }
        }

        public List<string> searchSong(string value)
        {
            List<string> songs = new List<string>();
            String[] mp3 = null;
            mp3 = Directory.GetFiles(@"D:\Songs", "*.mp3", SearchOption.AllDirectories).ToArray();
            foreach (String item in mp3)
            {
                if (item.Contains(value))
                {
                    songs.Add(item);
                }
            }
            return songs;
        }

    }