2010-08-25 7 views
0

Comment puis-je choisir des fichiers en utilisant la date d'aujourd'hui?VB Source Dossier Question

J'ai des fichiers qui ont des dates et des heures dans un dossier, 08-25-2010-123803654.xml, 08-25-2010-123804441.xml, 08-24-2010-123851240.xml, etc.

Je veux retirer seulement les entrys d'aujourd'hui et quand je mets mon code, cela me donne une erreur.

Mon code est:

sourcefolder = "C: \ TEST (DateTime.Now.tostring ('MM-dd-* AAAA')"

Je ne suis pas sûr de ce que Im faire mal ici

Merci

mon code. Module Module1

Private Property fs As Object 
Private Property BaseName As Object 
Private Property FullTargetPath As Object 

Sub Main() 


    Dim xlApp, xlWkb, SourceFolder, TargetFolder, file 
    xlApp = CreateObject("excel.application") 
    fs = CreateObject("Scripting.FileSystemObject") 
    Const xlNormal = 1 
    SourceFolder = "C:\TEST\" & DateTime.Now.ToString("MM-dd-yyyy") & "*" 
    TargetFolder = "C:\TEST\Excel" 

    'Hide Excel 
    xlApp.Visible = False 

    'Process each file in SourceFolder 
    For Each file In fs.GetFolder(SourceFolder).files 
     'Open file in SourceFolder 
     xlWkb = xlApp.Workbooks.Open(file) 
     'Get Filename 
     BaseName = fs.getbasename(file) 
     'Concatenate full path. Extension will be automatically added by Excel 
     FullTargetPath = TargetFolder & "\" & BaseName 
     'Save as XLS file into TargetFolder 
     xlWkb.SaveAs(FullTargetPath, xlNormal) 
     'Close the file after its done 
     xlWkb.close() 
    Next 

    xlWkb = Nothing 
    xlApp = Nothing 
    fs = Nothing 

    MsgBox("Finished. Bout time!") 


End Sub 

End Module

Répondre

0

Je vais simplement traduire cette partie de votre code, espérons-vous mettre sur la bonne voie:

Dim targetFolder As String = "C:\TEST\Excel" 

Dim sourceFolder As String = "C:\TEST" 

' Here is where we specify a pattern by which we will find files in ' 
' sourceFolder. ' 
Dim searchPattern As String = String.Format("{0:MM-dd-yyyy}*.xml", Date.Today) 

' This will give us an array with only those files matching the pattern above; ' 
' that is, only files from today. ' 
Dim todaysFiles() As String = Directory.GetFiles(sourceFolder, searchPattern) 

For Each file As String In todaysFiles 
    ' Excel stuff... ' 

    Dim fileName As String = Path.GetFileNameWithoutExtension(file) 

    ' Concatenate full path. Extension will be automatically added by Excel. ' 
    Dim fullTargetPath = Path.Combine(targetFolder, fileName) 

    ' More Excel stuff... ' 
Next 
+0

alors sourcefolder devrait lire, > SourceFolder = répertoire > TargetFolder = "C: \ TEST \ Excel" Comment le motif de recherche entrerait-il en jeu? – GabrielVa

+0

@gabrielVa: Voyez si ma mise à jour vous aide un peu plus. –

+0

Oui, cela semble aider un peu et je le comprends maintenant, bien que je reçois une nouvelle erreur, j'ai créé une fonction privée pour directory() et quand je lance l'application de la console maintenant il dit ce qui suit: System.NotImplementedException was unfhandle Message = La méthode ou l'opération n'est pas implémentée. Source = ConsoleApplication3 – GabrielVa

0

Le code affiché ne rajoutez pas réellement la date d'aujourd'hui sur le chemin de base, il crée une chaîne statique. Ne vous dire:

SourceFolder = "C:\TEST\" & DateTime.Now.ToString("MM-dd-yyyy") & "*" 
+0

Hey David, J'ai essayé mais je continuer à obtenir une erreur dans ce qui suit: Pour chaque fichier fs.GetFolder (sourcefolder) .files erreur est: Exception de HRESULT: 0x800A004C (CTL_E_PATHNOTFOUND) – GabrielVa

Questions connexes