Как выбрать файлы в папке? - PullRequest
0 голосов
/ 06 октября 2009

Я хочу выпустить программу, которая может открывать папку, читая путь из текстового файла. После открытия код проверит, есть ли файлы внутри папки. для первого файла выполните некоторую вызывающую функцию, она будет работать до последнего доступного файла в папке.

например, если папка A содержит 3 файла, 1st.doc, 2nd.txt, 3rd.pdf, она будет выполнять операцию с каждым файлом до тех пор, пока последний файл не завершится.

спасибо

Мне нужна идея о том, как это реализовать, ссылки или примеры на любом языке также очень полезны.

Я кодирую его в Basic:

;open textfile
$dir = "C:\Documents and Settings\admin\My Documents\AutoItCodes\"
$file = FileOpen($dir & "Setting.txt", 0)
If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
EndIf

$source = FileReadLine($file,1)
$dest = FileReadLine($file,2)
$pass = FileReadLine($file,3)
FileClose($file)

;check files available in the folder $source
$search = FileFindFirstFile($source & "*.*")  

; Check if the search was successful
If $search = -1 Then
    MsgBox(0, "Error", "No files/directories matched the search pattern")
    Exit
EndIf

;Check for the first file and display in message box
;***I belived it all start here!!***

While 1
    $file = FileFindNextFile($search) 
    If @error Then ExitLoop 
    MsgBox(4096, "File:", $file)
WEnd

; Close the search handle
FileClose($search)

Проблема FIX. благодарю вас. Но другая проблема, которая до сих пор не поможет

Dim objShell: Set objShell = CreateObject("Shell.Application")
Dim objFolder : Set objFolder = objShell.Namespace(source) 
Dim colItems: Set colItems = objFolder.Items
Dim i
For i = 0 to colItems.Count - 1
    colItems.Item(i).InvokeVerbEx("Encrypt")
    'do my execution
    call moveToFolder()
Next

У меня есть эта функция moveToFolder (), которая будет перемещать все * .pac в другую папку.

  • Ошибка: операция остановлена ​​до вызова функции. Указанное разрешение отклонено
  • как добавить, чтобы переместить файлы и перезаписать, если существует такое же имя?

.

Sub moveToDest()
 dim newfolder
 Dim objFSO: Set objFSO = CreateObject("Scripting.FileSystemObject")
 If  Not objFSO.FolderExists(dest) Then
    newfolder = objFSO.CreateFolder (dest)
    WScript.Echo "A new folder '" & newfolder & "' has been created" 
 End If
 objFSO.MoveFile source & "*.pac" , dest, true
End Sub

1 Ответ

0 голосов
/ 06 октября 2009

Ваш тег говорит VBScript, поэтому вот несколько заметок:

Option Explicit

Const ForReading = 1
Dim a, fs, f, fldr, i, s

Set fs = CreateObject("Scripting.FileSystemObject")

Set f = fs.OpenTextFile("C:\Docs\fileList.txt", ForReading)

a = Split(f.ReadAll,vbCrLf)

f.Close

If fs.FolderExists(a(0)) Then

    Set fldr = fs.GetFolder(a(0))
    i = fldr.Files.Count

    If i>0 Then
        For Each f In fldr.Files
            s=vbCrLf & f.Name
        Next

        MsgBox s
    Else
        MsgBox a(0) & " does not have any files."
    End If
Else
    MsgBox a(0) & " does not exists."
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...