Reputation: 9
Here's my code to show XML files in a ListBox
, but I want them without extensions:
Dim Directory = Application.StartupPath + "\orders\"
Dim Files() As System.IO.FileInfo
Dim DirInfo As New System.IO.DirectoryInfo(Directory)
Dim StrClean As String
Sub ShowFiles()
Files = DirInfo.GetFiles("*.xml", IO.SearchOption.TopDirectoryOnly)
For Each File In Files
lstFiles.Items.Add(File)
Next
End Sub
How do i show files without .xml
extension?
Upvotes: 0
Views: 440
Reputation: 7517
Like stated in comments, use System.IO.Path.GetFileNameWithoutExtension
.
Sub ShowFiles()
Files = DirInfo.GetFiles("*.xml", IO.SearchOption.TopDirectoryOnly)
For Each File In Files
lstFiles.Items.Add(Path.GetFileNameWithoutExtension(File.Name))
Next
End Sub
Furthermore it's better to use Path.Combine
to concatenate a path with foldernames.
You don't have to worry about leading/trailing backslashes then:
Dim Directory As String = Path.Combine(Application.StartupPath, "orders")
Upvotes: 1
Reputation: 34421
You may want to look at following code that I wrote last week for c# that I converted to VB.net
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Xml
Imports System.Xml.Linq
Imports System.IO
Module Module1
Dim FILENAME As String = "c:\temp\test.xml"
Dim FOLDER As String = "c:\temp"
Dim writer As XmlWriter
Sub Main()
Dim settings As New XmlWriterSettings()
settings.Indent = True
writer = XmlWriter.Create(FILENAME, settings)
writer.WriteStartDocument(True)
Dim info As New DirectoryInfo(FOLDER)
WriteTree(info)
writer.WriteEndDocument()
writer.Flush()
writer.Close()
Console.WriteLine("Enter Return")
Console.ReadLine()
End Sub
Function WriteTree(info As DirectoryInfo) As Long
Dim size As Long = 0
writer.WriteStartElement("Folder")
Try
writer.WriteAttributeString("name", info.Name)
writer.WriteAttributeString("numberSubFolders", info.GetDirectories().Count().ToString())
writer.WriteAttributeString("numberFiles", info.GetFiles().Count().ToString())
writer.WriteAttributeString("date", info.LastWriteTime.ToString())
For Each childInfo As DirectoryInfo In info.GetDirectories()
size += WriteTree(childInfo)
Next childInfo
Catch ex As Exception
Dim errorMsg As String = String.Format("Exception Folder : {0}, Error : {1}", info.FullName, ex.Message)
Console.WriteLine(errorMsg)
writer.WriteElementString("Error", errorMsg)
End Try
Dim fileInfo As FileInfo()
Try
fileInfo = info.GetFiles()
Catch ex As Exception
Dim errorMsg As String = String.Format("Exception FileInfo : {0}, Error : {1}", info.FullName, ex.Message)
Console.WriteLine(errorMsg)
writer.WriteElementString("Error", errorMsg)
End Try
If Not fileInfo Is Nothing Then
For Each finfo As FileInfo In fileInfo
Try
writer.WriteStartElement("File")
writer.WriteAttributeString("name", RemoveExtension(finfo.Name))
writer.WriteAttributeString("size", finfo.Length.ToString())
writer.WriteAttributeString("date", info.LastWriteTime.ToString())
writer.WriteEndElement()
size += finfo.Length
Catch ex As Exception
Dim errorMsg As String = String.Format("Exception File : {0}, Error : {1}", finfo.FullName, ex.Message)
Console.WriteLine(errorMsg)
writer.WriteElementString("Error", errorMsg)
End Try
Next finfo
End If
writer.WriteElementString("size", size.ToString())
writer.WriteEndElement()
Return size
End Function
Function RemoveExtension(fname As String) As String
Return fname.Substring(0, fname.LastIndexOf("."))
End Function
End Module
Upvotes: 0