我一直在使用以下行搜索特定文件类型的文件夹结构,只是复制这些文件类型并保持其原始文件夹结构.它工作得很好.
我可以对我的方法进行任何修改,只复制包含过滤文件类型的目录吗?
我可以对我的方法进行任何修改,只复制包含过滤文件类型的目录吗?
*编辑:我可以让用户使用名为txtFilter的文本框选择一组特定文件(例如* .dwg或* .pdf).
private void button1_Click(object sender,EventArgs e) { string sourceFolder = txtSource.Text; string destinationFolder = txtDestination.Text; copyFolderContents(sourceFolder,destinationFolder); } // copies the contents of a folder,including subfolders to an other folder,overwriting existing files public void copyFolderContents(string sourceFolder,string destinationFolder) { string filter = txtFilter.Text; if (Directory.Exists(sourceFolder)) { // copy folder structure foreach (string sourceSubFolder in Directory.GetDirectories(sourceFolder,"*",SearchOption.AllDirectories)) { Directory.CreateDirectory(sourceSubFolder.Replace(sourceFolder,destinationFolder)); } // copy files foreach (string sourceFile in Directory.GetFiles(sourceFolder,filter,SearchOption.AllDirectories)) { string destinationFile = sourceFile.Replace(sourceFolder,destinationFolder); File.copy(sourceFile,destinationFile,true); } } }
解决方法
你的主循环中有这样的东西吗?
if (Directory.EnumerateFiles(sourceSubFolder,"*.pdf").Any()) Directory.CreateDirectory(sourceSubFolder.Replace(sourceFolder,destinationFolder));
或多种文件类型:
if (Directory.EnumerateFiles(sourceSubFolder).Where(x => x.ToLower.EndsWith(".pdf") || x.ToLower.EndsWith(".dwg")).Any()) Directory.CreateDirectory(sourceSubFolder.Replace(sourceFolder,destinationFolder));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。