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

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

如何(StartsWith)從第 4 個字母開始?

如何(StartsWith)從第 4 個字母開始?

C#
慕斯709654 2022-12-24 14:16:01
我有個問題。我想通過單擊按鈕將“新文件夾”中的特定文件復制到“目標”文件夾。在“新文件夾”中包含各種不同名稱的文件。例如:“abcUCU0001”、“abbUCA0003”、“hhhUCU0012”、“aaaUCS0012”等等?!靶挛募A”包含超過1000 個文件,并且名稱中有相同的 10 個字母。我想復制 10 個文件,它的名稱必須有"UCU"。我不知道如何使用(startsWith)從第 4 個字母開始進行復制。對不起我的語法不好。private void button1_Click(object sender, EventArgs e){    string FROM_DIR = @"C:\Users\Desktop\Source";    string TO_DIR = @"C:\Users\Desktop\Target";    DirectoryInfo diCopyForm = new DirectoryInfo(FROM_DIR);    DirectoryInfo[] fiDiskfiles = diCopyForm.GetDirectories();    string filename = "UCU";    int count = 0;    foreach (DirectoryInfo newfile in fiDiskfiles)    {       try       {            if (newfile.Name=="New folder")            {                foreach (FileInfo file in newfile.GetFiles())                {                    if(file.FullName.StartsWith(filename))                    {                        File.Copy(file.FullName, Path.Combine(TO_DIR,file.Name));                        count++;                        if (count == 10)                        {                            break;                        }                    }                }            }        }        catch (Exception ex)        {            MessageBox.Show(ex.Message);        }    }    MessageBox.Show("success");}我希望在單擊一個按鈕后,10 個名為“UCU”的文件將復制到目標文件夾。
查看完整描述

2 回答

?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

如果所有文件都在同一個目錄中(沒有子目錄),那么您可以使用以下方法獲取所有文件:


    //assuming diCopyForm is the new folder reference

    // ? denotes 1 character while * is multiple chars

    var files = diCopyForm.GetFiles("???UCU*"); 

然后將它們復制過來。對于更復雜的條件,我會獲取所有文件并使用 LINQ 進行過濾。


有關所用搜索模式的詳細信息


如果文件夾中有很多文件,那么使用EnumerateFiles方法可能更有效


EnumerateFiles 和 GetFiles 方法的區別如下: 使用 EnumerateFiles 時,可以在返回整個集合之前開始枚舉名稱集合;使用 GetFiles 時,必須等待返回整個名稱數組,然后才能訪問該數組。因此,當您處理許多文件和目錄時,EnumerateFiles 會更有效率。


查看完整回答
反對 回復 2022-12-24
?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

您可以使用string.IndexOf檢查文件名是否在第 4 個位置有“UCU” :


//string filename = "UCU";

if (file.FullName.IndexOf(filename) == 3)


查看完整回答
反對 回復 2022-12-24
  • 2 回答
  • 0 關注
  • 76 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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