Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 仅当文件名位于指定的文本文件c中时,才将文件从一个文件夹复制到另一个文件夹#_C#_Arrays_File_Copy - Fatal编程技术网

C# 仅当文件名位于指定的文本文件c中时,才将文件从一个文件夹复制到另一个文件夹#

C# 仅当文件名位于指定的文本文件c中时,才将文件从一个文件夹复制到另一个文件夹#,c#,arrays,file,copy,C#,Arrays,File,Copy,我需要将文件从一个文件夹复制到另一个文件夹,但前提是文件名也在文本文件中。文本文件是这样设置的 file1.jpg file2.jpg file3.jpg etc 大约有一百万个文件需要复制。我用的是C 最好的办法是什么?我不确定是否应该首先读取文本文件中的所有文件名并将它们放入列表,然后可能将列表转换为数组,然后可能以某种方式使用数组?或者有更好的办法 我知道如何读取和写入文件,以及如何从一个源目标复制到另一个目标。但是,我不知道在从一个源目标复制到另一个目标时如何过滤掉特定的文件 非常感

我需要将文件从一个文件夹复制到另一个文件夹,但前提是文件名也在文本文件中。文本文件是这样设置的

file1.jpg
file2.jpg
file3.jpg
etc 
大约有一百万个文件需要复制。我用的是C

最好的办法是什么?我不确定是否应该首先读取文本文件中的所有文件名并将它们放入列表,然后可能将列表转换为数组,然后可能以某种方式使用数组?或者有更好的办法

我知道如何读取和写入文件,以及如何从一个源目标复制到另一个目标。但是,我不知道在从一个源目标复制到另一个目标时如何过滤掉特定的文件

非常感谢您的帮助


多谢各位

以下代码将帮助您完成所需的过程

        string source = @"C:\SourcePath\";
        string destination = @"C:\DestinationPath\";

        string[] strFiles = File.ReadAllText(@"C:\Filename.txt").Split(' ');
        for (int i = 0; i < strFiles.Length; i++)
        {
            File.Copy(source + strFiles[i], destination + strFiles[i]);
        }
stringsource=@“C:\SourcePath\”;
字符串destination=@“C:\DestinationPath\”;
字符串[]strFiles=File.ReadAllText(@“C:\Filename.txt”).Split(“”);
for(int i=0;i
如果文本文件是一行,有一百万个文件名。用这个

        string from = @"c:\from" , to =@"d:\to"; // source and destination
        StreamReader file = new StreamReader(@"c:\list.txt"); // your files list
        string total=file.ReadLine();

        string[] tobecopied = total.Split(' ');
        foreach(string fil in tobecopied)
        {
            if(File.Exists(from+@"\"+fil))
               {
                File.Copy(from+@"\"+fil,to+@"\"+fil);
               }
            else
               {
                MessageBox.Show(fil+"Not found ");
               }
        }
但是如果文本文件每1个文件有1行,例如

FIle1.exe

File2.exe

用这个

        string from = @"c:\from" , to =@"d:\to"; // source and destination
        StreamReader file = new StreamReader(@"c:\list.txt"); // your files list
        string total="";
        string temp="";
        while((temp=file.ReadLine())!=null)
        {
            total+=temp+" ";

        }
        string[] tobecopied = total.Split(' ');
        foreach(string fil in tobecopied)
        {
            if(File.Exists(from+@"\"+fil))
               {
                File.Copy(from+@"\"+fil,to+@"\"+fil);
               }
            else
               {
                MessageBox.Show(fil+"Not found ");
               }
        }
这些方法还检查文件是否存在


希望它能起作用。如果有人看到错误,请编辑它。

逐行读取文本文件,然后移动它们,而不是一次读取所有文件。1行1文件名或1行总文件名?可能将文本文件读取到列表中,然后使用list.find(文件名)或list.exists(文件名)。我在python中使用python列表和os.walk()完成了类似的工作。不要忘记对所有搜索和列表元素使用大写或小写。到底是什么问题?您尝试了什么,找到了File.ReadAllLines()之类的方法吗?你知道foreach吗?等等,不管这个,.Split('\r');看起来很合适。嘿,你的第二个关于分开行的答案似乎是在一个空格上分开的?虽然答案很好,但我认为两者都可以!谢谢。如果我有15个声望,我会投票!你会不会碰巧知道如何做到这一点,但使用robocopy来复制而不是windows复制?我正在对此进行研究,它真的令人困惑!!我才15岁,兄弟。根据我的研究,它不知何故更快。但很多事情更让人困惑。谷歌“robocopy c#”并改编其中一些。祝你好运。@user3559010如果你通读了我的代码,我会在每行加上“”,然后用“”隔开。所以我得到了一个数组,每个数组包含一个文件名