返回信息流起因:本来是打算把listen to this 里面的mp3音频文件拷到psp上练练听力,但是下载的listen to this软件的音频目录中混杂着太多其它的文件,想把mp3弄出来还要一个一个找,想了想觉得真麻烦,于是乎去下载MP3版的listen to this,但是发现下载的很多都不清晰,也不好,心烦意乱啊。然后就想了想干脆写个软件直接把里面的mp3文件过滤出来还方便一点,于是乎该小工具就诞生了。。。囧
软件作用:可以把某个文件夹中的某种后缀名(不只是mp3)的文件全部过滤到目标文件夹中,且保持文件的存放目录结构,即这些文件仍然在与之前子目录文件夹同名的文件夹中。
注意:因为过滤操作采用了System.IO.File.Move函数,所以“过滤”即是只“移至”,想单存的拷贝出来的同学可以更改源代码,使用System.IO.File.Copy函数。谢谢“蕾丝牛奶”的提醒^^
希望能帮到所需之人。
附上源码:
附件(54.8KB)
这是一条镜像帖。来源:北邮人论坛 / dot-net / #1024同步于 2009/12/31
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖
[原创]c#写的一个“批量过滤文件”小工具
wacke
2009/12/31镜像同步27 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
: 注意:c#中没有copy,只有move,所以过滤的意思就是“移至”,所以建议大家先备份一下,免得打乱之前的文件存放结构。
System.IO.File.Copy(String, String) 即可
赞个
【 在 wacke (wacke) 的大作中提到: 】
: 起因:本来是打算把listen to this 里面的mp3音频文件拷到psp上练练听力,但是下载的listen to this软件的音频目录中混杂着太多其它的文件,想把mp3弄出来还要一个一个找,想了想觉得真麻烦,于是乎去下载MP3版的listen to this,但是发现下载的很多都不清晰,也不好,�
: 软件作用:可以把某个文件夹中的某种后缀名(不只是mp3)的文件全部过滤到目标文件夹中,且保持文件的存放目录结构,即这些文件仍然在与之前子目录文件夹同名的文件夹中。
: 注意:c#中没有copy,只有move,所以过滤的意思就是“移至”,所以建议大家先备份一下,免得打乱之前的文件存放结构。
: ...................
递归思路很好哈,我提供一个更偷懒的方法,仅供参考
For Each fileName As String In My.Computer.FileSystem.GetFiles(OriginalFolder.Text, FileIO.SearchOption.SearchAllSubDirectories, New String() {"*" + ExtensionText.Text})
Dim oldFile As New IO.FileInfo(fileName)
Dim newFile As New IO.FileInfo(fileName.Replace(OriginalFolder.Text, DestinationFolder.Text))
If oldFile.Extension = ExtensionText.Text Then
If Not IO.Directory.Exists(newFile.DirectoryName) Then
IO.Directory.CreateDirectory(newFile.DirectoryName)
End If
oldFile.CopyTo(newFile.FullName, True)
End If
Next
【 在 Milk 的大作中提到: 】
: 递归思路很好哈,我提供一个更偷懒的方法,仅供参考
: For Each fileName As String In My.Computer.FileSystem.GetFiles(OriginalFolder.Text, FileIO.SearchOption.SearchAllSubDirectories, New String() {"*" + ExtensionText.Text})
: Dim oldFile As New IO.FileInfo(fileName)
: ...................
第一句里的
My.Computer.FileSystem.GetFiles(OriginalFolder.Text, FileIO.SearchOption.SearchAllSubDirectories, New String() {"*" + ExtensionText.Text})
可用
IO.Directory.GetFiles(OriginalFolder.Text, "*" + ExtensionText.Text, System.IO.SearchOption.AllDirectories)
代替,这样C#也可以用了
【 在 Milk 的大作中提到: 】
: 递归思路很好哈,我提供一个更偷懒的方法,仅供参考
: For Each fileName As String In My.Computer.FileSystem.GetFiles(OriginalFolder.Text, FileIO.SearchOption.SearchAllSubDirectories, New String() {"*" + ExtensionText.Text})
: Dim oldFile As New IO.FileInfo(fileName)
: ...................
呵呵,不错不错,集思广益才能有更好的进步啊[em21]