2

Active Directory をポーリングするコンソール アプリケーションの作成を依頼されました。(C.\Temp\入力)

ファイルが で受信されると(filename).SUCCESS、SQL クエリを実行するためにファイル名が取得されます。そう

IF fileextension = SUCCESS

filename を使用して SQL クエリを実行し、SQL テーブルの値を変更します。元のファイルを次の場所に移動しますc:\temp\Input\Processed

どんな助けやヒントも大歓迎です。

更新しました:

こんにちは、さまざまなサイトをいくつか見て、以下を思いつきました。今のところSQLを忘れて、ファイル名とファイルの移動の後でのみ、ファイルが既に使用されているというIO例外を取得しています:

System.IO をインポート System.String モジュール Module1 をインポート

Dim fileName As String = "C:\temp\Input\NR12345.success"
Dim pathname As String = "C:\temp\Input\"
Dim result As String
Dim sourceDir As String = "C:\temp\Input\"
Dim processedDir As String = "C:\temp\Input\Processed\"
Dim fList As String() = Directory.GetFiles(sourceDir, "*.success")



Sub Main()
    result = Path.GetFileName(fileName)
    Console.WriteLine("GetFileName('{0}') returns '{1}'", fileName, result)
    result = Path.GetFileName(pathname)
    Console.WriteLine("GetFileName('{0}') returns '{1}'", pathname, result)

    Call MySub()

End Sub

Sub MySub()
    'Move Files

    For Each f As String In fList
        'Remove path from the file name. 
        Dim fName As String = f.Substring(sourceDir.Length = 0)
        Dim sourceFile = Path.Combine(sourceDir, fName)
        Dim processedFileDir = Path.Combine(processedDir, fName)

        ' Use the Path.Combine method to safely append the file name to the path. 
        ' Will overwrite if the destination file already exists.
        File.Copy(Path.Combine(sourceDir, fName), Path.Combine(processedDir, fName), True)
        'File.Copy(sourceFile, processedFileDir)

    Next f
End Sub

エンドモジュール

4

1 に答える 1

2

私は以前にこれを使用しました:

FileWatherクラス

構造やファイルの詳細などの変更についてディレクトリをポーリングするのに非常に便利です。

次に、これを使用してファイルの拡張子を取得し、それが基準を満たしている場合は、いくつかのアクションを実行できます。

これらのリンクには例が付いていますので、お楽しみください!!

Sub MySub()
    'Move Files

    For Each f As String In fList

        Dim fInfo As FileInfo = New FileInfo(f)

        Dim fName As String = fInfo.Name

        Dim processedFileDir = Path.Combine(processedDir, fName)

        ' Use the Path.Combine method to safely append the file name to the path. 
        ' Will overwrite if the destination file already exists.
        File.Copy(fInfo.FullName, processedFileDir, True)

    Next f
End Sub
于 2012-11-21T11:38:47.680 に答える