亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將文件擴展名與文本框中鍵入的內容進行比較,而不是先點?

如何將文件擴展名與文本框中鍵入的內容進行比較,而不是先點?

C#
揚帆大魚 2022-11-22 16:25:24
我正在搜索文件。并且根據我在 textBox2 中鍵入的擴展名,我想在其中搜索文件類型。例如,如果我在 textBox2 .txt 中鍵入,它將搜索所有文本文件。但我不想輸入 .cs 或 .txt 我只想輸入 cs 或 txtstring restrictedFile = "";        List<string> restrictedFiles = new List<string>();        int numberofrestrictedFiles = 0;        int numberoffiles = 0;        IEnumerable<string> SearchAccessibleFilesNoDistinct(string root, List<string> files,BackgroundWorker worker, DoWorkEventArgs e)        {            _busy.WaitOne();            if (files == null)                files = new List<string>();            if (Directory.Exists(root))            {                foreach (var file in Directory.EnumerateFiles(root))                {                    if (worker.CancellationPending == true)                    {                        e.Cancel = true;                        return files;                    }                    restrictedFile = file;                    string ext = Path.GetExtension(file);                    if (!files.Contains(file) && ext == textBox2.Text)                    {                        files.Add(file);                    }                    numberoffiles++;                    label24.Invoke((MethodInvoker)delegate                    {                        label24.Text = numberoffiles.ToString();                        label24.Visible = true;                    });                }                foreach (var subDir in Directory.EnumerateDirectories(root))                {                    if (worker.CancellationPending == true)                    {                        e.Cancel = true;                        return files;                    }                    try                    {                        SearchAccessibleFilesNoDistinct(subDir, files,worker, e);                    }在這部分,我獲取文件擴展名并檢查 textBox2 中的文件擴展名是否相同。但是由于文件擴展名是 .txt 或 .cs 或 .gif,我還必須在 textBox2 中輸入“.”。相反,我只想輸入 cs gif txt....另一個子問題,我怎樣才能讓它在所有文件擴展名中搜索?例如,如果我在 textBox2 中鍵入他的字符串 ALL 或 maybe 。所以它會搜索所有的擴展。
查看完整描述

2 回答

?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

EnumerateFiles 有一個接受搜索過濾器的原型。讓操作系統過濾文件比自己在代碼中過濾文件效率更高。


要獲取具有特定擴展名的文件,請這樣搜索:


EnumerateFiles(root, "*." + extension);

要獲取所有文件,請使用:


EnumerateFiles(root, "*.*");

要涵蓋這兩種情況,您可以使用:


var extension = Textbox2.Text;

if (string.IsNullOrWhitespace(extension)) extension = "*.*";

foreach (var file in Directory.EnumerateFiles(root, extension)

{

    //etc....


查看完整回答
反對 回復 2022-11-22
?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

Path.GetExtension 返回帶有 . (.docx),因此您可以更改 if 條件以自動添加:

if (!files.Contains(file) && ext == "." + textBox2.Text)


查看完整回答
反對 回復 2022-11-22
  • 2 回答
  • 0 關注
  • 110 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號