0

我有一个提供随机文件的程序。这很简单,但我对此很陌生。我无法创建文件的 fileinfo 列表。我添加了一个上下文菜单条,它可以选择多种文件类型(例如:视频文件、文本文件..)

我想用 cntxtmnustrp 定义字符串数组。并希望它制作新数组并与以前的数组结合。但它没有用。我应该创建一个数组列表并将每个列表添加到其中吗?

   public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    Random r = new Random();
    string path1;          
   DirectoryInfo dif;
  // List<FileInfo> files;
    FileInfo[] files;
    FileInfo[] newfiles;


    int randomchoose;
    int fok;
    int kok, pd;

    string[] filetypes;     



    private void button1_Click(object sender, EventArgs e)
    {

        FolderBrowserDialog hoho = new FolderBrowserDialog();  // yeni dosya yeri

        hoho.ShowNewFolderButton = true;

        if (hoho.ShowDialog() == DialogResult.OK) 
        {
            path1 = hoho.SelectedPath; 
            textBox1.Text = path1;
            dif = new DirectoryInfo(path1);              

            foreach (string ft in filetypes)
        {
           files = dif.GetFiles("*.ft", SearchOption.AllDirectories);
          //files.AddRange(dif.GetFiles(string.Format("*.{0}", ft), SearchOption.AllDirectories));

            newfiles = newfiles.Concat(files);
        }                                                            

           //pd = liste.Length;

           pd = files.Length;
            kok = pd;
        }                  
    }

        }       
    private void button1_Click_1(object sender, EventArgs e)
    {
        listBox1.Sorted = true;

    }

    private void cesit_Click(object sender, EventArgs e)
    {
        //contextMenuStrip1.Show();
        contextMenuStrip1.Show(this.PointToScreen(cesit.Location));
    }


    private void videoFilesToolStripMenuItem_Click(object sender, EventArgs e)
    {
        filetypes = new string[2] { "txt", "png" };

    }

    private void musicFilesToolStripMenuItem_Click(object sender, EventArgs e)
    {
        //tur = ".png";
        //textBox4.Text = tur;
    }

    private void textFilesToolStripMenuItem_Click(object sender, EventArgs e)
    {

    }

}
4

1 回答 1

0

假设我明白你的意思,我会将files数组变成 a List,通过替换:

FileInfo[] files;

和:

List<FileInfo> files;

这意味着你会改变:

files = dif.GetFiles("*.ft", SearchOption.AllDirectories);

至:

files.AddRange(dif.GetFiles(string.Format("*.{0}", ft) SearchOption.AllDirectories));

然后,您可以摆脱列表连接:

newfiles = newfiles.Concat(files);
于 2013-09-25T20:18:32.663 回答