-1

我希望你们一切都好。如果我的问题完全是菜鸟,请原谅我,但我无法用谷歌搜索解决方案。

我需要获取文件名的一部分并将其分别移动到特定文件夹(类别)。问题是,我将有多个具有特定格式名称的 JPEG 文件,并且是由我老板的供应商提供给我的。文件包含汽车零部件的图片,并以下列格式命名

代号-名称-类别-描述

我需要获取类别,我得到的唯一线索是分割代码、名称和类别的两个破折号。代码、名称和描述在长度和内容上完全随机。

例子:

1099 - 球形接头 - 悬架 - 本田思域的球形接头,可重复用于本田雅阁.JPEG

3275-空气滤清器-机器-丰田卡罗拉空气滤清器,也可用于凯美瑞.JPEG

我需要的是获取“暂停”和“机器”并将每个文件移动到各自的文件夹中。我不知道如何在两次破折号后拆分和获取数据。

任何回应将不胜感激。谢谢你。祝你有美好的一天。

4

1 回答 1

0

I use the same method then mehow, as I've worked out the detail, I give here:

Function entDirExists(ByVal strDir)
'
  Dim fso
'
  Set fso = CreateObject("Scripting.FileSystemObject")
  entDirExists = fso.FolderExists(strDir)
'
  Set fso = Nothing
End Function

'
'   i: counter
'   idxDir: index of the directory name in the split array
'
'   strFilename: current Filename
'   strSrcDir: source directory path
'   strDstDirPrefix: destination directory path prefix
'   strDstDir: destination directory for a category
'
'   xarr: split array of filename
'
Function entMoveFiles(ByVal strSrcDir)
'
  Dim i, idxDir
'
  Dim strFilename, strDstDirPrefix, strDstDir
  Dim xarr
'
  idxDir = 2
'
' strSrcDir = "D:\users\tmp"
'
  strDstDirPrefix = strSrcDir
'
' get the first image file:
'
  strFilename = Dir(strSrcDir & "\*.jpeg", vbNormal)
'
' loop over the source directory for images:
'
  i = 0
  Do While (strFilename <> "")
    '
    ' split filename:
    '
    xarr = Split(strFilename, "-")
    '
    ' get the destination directory full path like prefix\catetory:
    '
    strDstDir = xarr(idxDir)
    strDstDir = strDstDirPrefix & "\" & Trim(strDstDir)
    '
    ' create the destination directory if nonexistent:
    '
    If (Not entDirExists(strDstDir)) Then
      MkDir strDstDir
    End If
    '
    ' move the current file: [source path] as [destination path]
    '
    Name strSrcDir & "\" & strFilename As strDstDir & "\" & strFilename
    '
    ' get next file:
    '
    strFilename = Dir()
    i = i + 1
  Loop
'
  entMoveFiles = i
'
End Function

To handle a directory name "D:\myjpegs", one uses this:

entMoveFiles "D:\myjpegs"

It will create subdirectories for each category, such as suspension, machine under D:\myjpegs if they don't already exist.

于 2013-10-31T17:37:27.010 回答