Сам бы давно уже воспользовался бы гуглом
Сам бы давно уже воспользовался бы гуглом
1km=1024m
Вопрос не в том, чтобы сконвертировать 1 файл. Вопрос в том, чтобы сохранить структуру каталогов сконвертированных файлов. Причём неизвестно, есть ли вложенные папки в сканируемом каталоге. Для обхода всех каталогов с неизвестным уровнем вложенности используется рекурсивный метод. Объяснять на пальцах его реализацию сложно. Проще предложить готовую самостоятельную программу.
Минздрав предупреждает: Существует два типа людей. Избегайте обоих.
Предыдущие посты с VBS были мои, по просьбе Alexiy выкладываю полный код программы с рекурсивным перебором папок bи сохранением структуры папок. Единственное что надо, это поменять в строке InitialFolder = "C:\Books" путь до папки с доковскими файлами. Вложение переименовать из 1.txt в файл с расширением vbs.
InitialFolder = "C:\Books"
TargetFolder = "C:\Book_folder_txt"
On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShellApp = CreateObject("Shell.Application")
CopyFiles InitialFolder
Sub CopyFiles(FolderPath)
On Error Resume Next
Set objFolderItems = objShellApp.NameSpace(FolderPath).Items()
For Each objFolderItem In objFolderItems
If objFolderItem.IsFolder And LCase(Right(objFolderItem.Name, 4)) <> ".zip" Then
CopyFiles objFolderItem.Path
Else
Set objFile = objFSO.GetFile(objFolderItem.Path)
If LCase(Right(objFolderItem.Name, 4)) = ".doc" Then
CopyFile objFolderItem.Path
End If
End If
Next
End Sub
Sub CopyFile(FilePath)
On Error Resume Next
SubPath = Mid(FilePath, Len(InitialFolder) + 1)
TargetPath = TargetFolder & SubPath
FolderPath = objFSO.GetParentFolderName(TargetPath)
If Not objFSO.FolderExists(FolderPath) Then
CreateFolder FolderPath
End If
If objFSO.FileExists(TargetPath) Then
Set objFile = objFSO.GetFile(TargetPath)
If objFile.Attributes And 1 Then
objFile.Attributes = objFile.Attributes - 1
End If
End If
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Open(FilePath)
objWord.Visible = FALSE
objDoc.SaveAs(TargetPath & ".txt"), 2
objWord.Quit
End Sub
Sub CreateFolder (FolderPath)
On Error Resume Next
ParentFolder = objFSO.GetParentFolderName(FolderPath)
If Not objFSO.FolderExists(ParentFolder) Then
CreateFolder ParentFolder
End If
objFSO.CreateFolder FolderPath
End Sub
Последний раз редактировалось TearsOfICe; 22.07.2007 в 13:18.
мне самому, пожалуй, тоже такая прога пригодится. Напишу - выложу.
Минздрав предупреждает: Существует два типа людей. Избегайте обоих.
Чем не устраивает
CZ-Doc2Txt COM v.2.0 ?
Кроме того, что она платная.
1km=1024m
Хм... обещаного 3 года ждут...
Однако вот, нарисовал я на досуге: находит и конвертит из doc, dot, rtf, html, xml, txt
в doc, dot, rtf, html, mht, xml, txt
в использовании предельно просто и понятно.
Если будут какие пожелания и их реализуем! ;)
Минздрав предупреждает: Существует два типа людей. Избегайте обоих.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)