【问题标题】:comboboxlist move files wont move组合框列表移动文件不会移动
【发布时间】:2022-08-16 02:21:40
【问题描述】:

在使用组合列表复选框移动某些文件时,我需要一些帮助。我有一个填充每个组合框的方法。从那里我有一个按钮来控制哪个框(文件夹)也可以移动文件(取决于检查的项目)。我看过一些关于制作列表和将项目从一个列表移动到另一个列表的教程,但在文件方面似乎缺少一些东西。下面是我正在使用的代码。

Populate checklistbox

Move files based on checked items

private void Populatetocheck()
    {

        List<string> Tobechecked = new List<string>();
        string[] tobedirs = Directory.GetDirectories(path.Text, \"1-TO BE CHECKED\", SearchOption.TopDirectoryOnly);
        foreach (string tobe in tobedirs)
        {
            string searchfolder = tobe;

            DirectoryInfo di = new DirectoryInfo(searchfolder);
            FileInfo[] files = di.GetFiles(\"*\");
            string str = \"\";

            foreach (FileInfo file in files)
            {
                Tobechecked.Add(file.Name);
                //MessageBox.Show(file.Name);
            }
        }

        tocheck.DataSource = Tobechecked;
        tocheck.DisplayMember = Name;
    }


private void moveright_Click(object sender, EventArgs e)
    {
        string scopecheckfolder = path.Text;
        string tocheckfolder = path.Text + @\"\\1-TO BE CHECKED\\\";
        string checkedfolder = path.Text + @\"\\2-CHECKED\\\";
        string backcheckfolder = path.Text + @\"\\3-BACK CHECKED AND SCRUBBED\\\";
        string finalizefolder = path.Text + @\"\\4-TO BE FINALIZED\\\";
        string issuefolder = path.Text + @\"\\5-READY TO ISSUE\\\";


        foreach (object checkprint in tocheck.CheckedItems) //moves files from to check to checked folder
                                                            //.OfType<object>().ToList()

        {
            System.IO.File.Move(Convert.ToString(checkprint), checkedfolder);
            Populatecheck();
        }
    }
  • 我们这里不做代码图片。将其发布为文本。
  • 对不起,我正在努力让它发布。这是我的第一次。
  • 如果代码的格式不是很好,请不要担心。我们可以帮助您修复格式,但重要的是您粘贴使用的代码而不是图像的链接。
  • 哈!花了我一段时间,但我想我明白了。非常感谢你的帮助。
  • 快速浏览一下,您似乎丢失了带有Tobechecked.Add(file.Name); 的文件的文件路径。如果没有路径,您的程序会假定该文件与可执行文件位于同一目录中,但事实并非如此。所以什么都没有动。

标签: c# winforms


【解决方案1】:

如 cmets 中所述,我只需要添加文件的路径,因为它在复选框列表的初始构建中丢失了。

foreach (object checkprint in tocheck.CheckedItems) //moves files from to check to checked folder
                                                            //.OfType<object>().ToList()

        {
            //MessageBox.Show(path.Text + @"\1-TO BE CHECKED\" + checkprint + ",   " + path.Text + @"\2-CHECKED");

            string Filelocation = Path.Combine(path.Text + @"\1-TO BE CHECKED\" + checkprint);
            string newFilelocation = Path.Combine(path.Text + @"\2-CHECKED\" + checkprint);

            System.IO.File.Move(Filelocation, newFilelocation);
            Populatecheck();
            Populatetocheck();
        }

【讨论】:

    猜你喜欢
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 2018-08-22
    相关资源
    最近更新 更多