2012-08-10 3 views

Répondre

2

Vous pouvez utiliser Path.GetFileNameWithoutExtension:

Dim filesNames = From path In IO.Directory.EnumerateFiles("C:\Temp") 
       Select IO.Path.GetFileNameWithoutExtension(path) 
IO.File.WriteAllLines("C:\Filenames.txt", filesNames) 

Edit: Voici une version qui fonctionne aussi dans .NET 3.5:

Dim filesNames = From path In IO.Directory.GetFileSystemEntries("C:\Temp") 
     Select IO.Path.GetFileNameWithoutExtension(path) 
IO.File.WriteAllLines("C:\Filenames.txt", filesNames.ToArray) 

et cela fonctionne même dans .NET 2:

Dim filesNames = IO.Directory.GetFileSystemEntries("C:\Temp") 
Dim fileNamesWithoutExtension(filesNames.Length - 1) As String 
For i = 0 To filesNames.Length - 1 
    fileNamesWithoutExtension(i) = IO.Path.GetFileNameWithoutExtension(filesNames(i)) 
Next 
IO.File.WriteAllLines("C:\Filenames.txt", fileNamesWithoutExtension) 
+0

@JonEgerton: Le '_' (continuation de ligne) est inutile dans VB.NET 4. –

+0

Intéressant - A travaillé dans VS2008 dans VB.Ne t, donc toujours coincé avec eux. Était juste en train de vérifier sur mon travail de connexion à distance que je n'étais pas devenu fou! –

+0

Merci pour la réponse, je reçois quelques erreurs maintenant: 'Select Case' doit se terminer par un 'End Select' correspondant. Le nom 'chemin' n'est pas déclaré. Les affirmations et les étiquettes ne sont pas valides entre 'Select Case' et le premier 'Case'. –