2010-02-03 16 views
1

J'essaie d'utiliser la classe VB.Net FileSystemWatcher pour regarder un dossier pour la création de fichiers Excel. Je reçois une réponse lorsqu'un fichier .xls est créé dans le dossier, mais je suis un problème avec le code ci-dessous:La surveillance de fichiers vb.net renvoie un nom de fichier incorrect

Private Sub AddWatch() 

Dim watch As New FileSystemWatcher 

     AddHandler watch.Changed, AddressOf FileChange 
     watch.Filter = "*.*" 
     watch.NotifyFilter = NotifyFilters.LastWrite 
     watch.Path = "C:\Documents and Settings\my.user\Desktop\testing" 
     watch.EnableRaisingEvents = True 
End Sub 

    Private Sub FileChange(ByVal obj As Object, ByVal e As System.IO.FileSystemEventArgs) 

     Debug.Print("changetype is: " & e.ChangeType.ToString & ", path is: " & e.FullPath.ToString) 
    End Sub 

Lorsque je crée un fichier texte dans ce dossier, je reviens le nom de fichier approprié ("C: \ Documents and Settings \ mon.utilisateur \ Bureau \ testing \ foo.txt"). Cependant, quand je sauvegarde un fichier Excel dans le dossier, le chemin est toujours correct, mais le nom de fichier est garbage (diffère chaque fois même avec le même nom de fichier, toujours 8 caractères comme "C: \ Documents and Settings \ my.user \ Desktop \ testing \ DE0B5800 ".) Impossible de trouver une chose sur cette recherche Google ou ici, et MSDN comme d'habitude est peu d'aide. Quelqu'un a-t-il traversé cela auparavant ou sait-il où je peux trouver plus d'informations?

+0

ressemble à Excel est d'abord enregistrez un fichier temporaire? –

+0

ressemble à un fichier temporaire qu'excelle écrit – pm100

Répondre

1

http://support.microsoft.com/kb/814068

En résumé:

Lorsque Excel enregistre un fichier, Excel suivre comme suit:

  1. Excel crée un fichier temporaire nommé de façon aléatoire (par exemple, Cedd4100 sans extension de nom de fichier) dans le dossier de destination que vous avez spécifié dans la boîte de dialogue Enregistrer sous. L'ensemble du classeur est écrit dans le fichier temporaire .
  2. Si des modifications sont enregistrées dans un fichier existant, Excel supprime le fichier original .
  3. Excel renomme le fichier temporaire. Excel attribue au fichier temporaire le nom de fichier que vous avez spécifié (par exemple en tant que Book1.xls) dans la boîte de dialogue Enregistrer sous .
+0

Merci, c'est tout. On dirait que je vais écrire le mien. –