我所拥有的是一个由文本框填充的列表框。
我想在特定目录中搜索与列表框条件匹配的所有文件。我想对列表框中的每个列表执行此操作,然后我想将所有匹配的文件复制到另一个目录。
所以Listbox包含: 苹果 橙子 水果
我想将apple * .txt复制到destiondirectory,然后将orange * .txt复制到目标目录,并将* .txt复制到destinationdirectory。
复制完所有内容之后,我想创建一个文本文件,将每个东西复制到它自己的文本文件中。所以目的地目录中的目录列表。
所以我会得到一个文本文件,其中包含符合特定标准IE apple *
的所有文件感谢您的帮助和建议。
string[] filesToCopy = listBox1.Items.
string sourcefolder1 = @"K:\rkups";
string destinationfolder = @"K:\g_aa_ge\qc";
{
string source = Path.Combine(sourcefolder1, filesToCopy[] + ".ann");
string target = Path.Combine(destinationfolder, filesToCopy[] + ".ann");
File.Copy(source,target);
DirectoryInfo di = new DirectoryInfo(destinationfolder);
FileInfo[] annfiles = di.GetFiles(string+"*.txt);
foreach(FileInfo fi in annfiles)
字符串+是我不知道在哪里/如何列出列表框中的每个项目,以及在哪里 string [] filesToCopy = listBox1.Items。不确定如何列出字符串中的每个项目
更新:
1)读取列表框中的每个项目
2)尝试从源目录复制到目的地列表框中的项目
3)重复
多数民众赞成
答案 0 :(得分:1)
我做了一个小例子,除了生成日志文件之外,它或多或少地做了你想做的事。
你应该能够从那里开始工作。
在我的示例中,代码只是使用复制文件的名称填充第二个文本框。 它经过测试和编译。
希望这有帮助! 安东尼
private void button1_Click(object sender, EventArgs e)
{
string dirInput = "c:/test";
string dirOutput = "c:/test2";
listBox2.Items.Clear();
bool overwriteFilesInOutputDir = true;
if (Directory.Exists(dirInput))
{
if (!Directory.Exists(dirOutput))
Directory.CreateDirectory(dirOutput);
DirectoryInfo di = new DirectoryInfo(dirInput);
foreach (string filterItem in listBox1.Items)
{
FileInfo[] rgFiles = di.GetFiles(filterItem);
foreach (FileInfo fi in rgFiles)
{
File.Copy(fi.FullName, dirOutput + Path.DirectorySeparatorChar + fi.Name, overwriteFilesInOutputDir);
listBox2.Items.Add(fi.Name);
}
}
}
}
与其他提及的人一样,如果你先尝试自己做,并问你什么时候被卡住会有所帮助。
listBox1包含过滤器,例如“ .xls”或“ .asp”,listBox2只是为了检查复制文件的名称。
安东尼
答案 1 :(得分:0)
我仍然对你想做的事情感到有些困惑,但我为你修好了你的代码......
string source, fileToCopy, target;
string sourcefolder1 = @"K:\rkups";
string destinationfolder = @"K:\g_aa_ge\qc";
DirectoryInfo di = new DirectoryInfo(destinationfolder);
FileInfo[] annfiles;
foreach (string s in listBox1.Items)
{
fileToCopy = s;
source = Path.Combine(sourcefolder1, fileToCopy + ".ann");
target = Path.Combine(destinationfolder, fileToCopy + ".ann");
File.Copy(source, target);
annFiles = di.GetFiles("*.txt");
// Do whatever you need to do here...
}