以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]处理文件代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89902)

--  作者:jyh7081
--  发布时间:2016/9/1 9:39:00
--  [求助]处理文件代码
D:\\项目     文件夹中有如下*.doc文件:

第1号-aaa.doc
第1号-bbb.doc
第1号-ccc.doc
......
第2号-hhh.doc
第2号-ddd.doc
第2号-eee.doc
......

文件名的前缀是以 “-” 作为分界,想将文件名 “-” 前含有相同字符串的文档,放入用 “-” 前的字符串命名的文件夹中:

例如:
 把“ 第1号-aaa.doc  |  第1号-bbb.doc   |  第1号-ccc.doc”   这三个文件  放入“第1号”文件夹;
其余类推。

已经看了FileSys类型用于处理文件和目录的方法,但不知道如何写。请指教!谢谢!





--  作者:有点蓝
--  发布时间:2016/9/1 9:50:00
--  
Dim dir As String = "D:\\项目"
For Each file As String In FileSys.GetFiles(dir)
    Dim filename As String = FileSys.GetName(file)
    Dim arr() As String = filename.Split("-")
    Dim subdir As String = dir & "\\" & arr(0)
    If Not FileSys.DirectoryExists(subdir) Then FileSys.CreateDirectory(subdir)
    FileSys.MoveFile(file,subdir & "\\" & filename)
Next

--  作者:jyh7081
--  发布时间:2016/9/1 10:01:00
--  
谢谢版主!很好用。
--  作者:jyh7081
--  发布时间:2016/9/1 10:46:00
--  
版主,当文件夹中已经有该文件了,如果想加一个判断,  “是否覆盖移入?”   需要怎样改动代码


--  作者:有点蓝
--  发布时间:2016/9/1 11:00:00
--  
http://www.foxtable.com/webhelp/scr/0337.htm


Dim dir As String = "D:\\项目"
For Each file As String In FileSys.GetFiles(dir)
    Dim filename As String = FileSys.GetName(file)
    Dim arr() As String = filename.Split("-")
    Dim subdir As String = dir & "\\" & arr(0)
    If Not FileSys.DirectoryExists(subdir) Then FileSys.CreateDirectory(subdir)
    Dim fg As Boolean = True
    If FileSys.FileExists(subdir & "\\" & filename) Then
        If MessageBox.Show("是否覆盖?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.No Then
            fg = False
        Else
            FileSys.DeleteFile(subdir & "\\" & filename,2,3)
        End If
    End If
    If fg Then FileSys.MoveFile(file,subdir & "\\" & filename)
Next

--  作者:jyh7081
--  发布时间:2016/9/1 11:41:00
--  
谢谢版主!很好用,但有些代码看不懂,先下载学习。