Xml 如何在文件名字符串中排除扩展名
下面是我在列表框中显示XML文件的代码,但我希望它们不带扩展名: Dim目录=Application.StartupPath+\orders\ 将文件设置为System.IO.FileInfo Dim DirInfo作为新的System.IO.DirectoryInfoDirectory 作为字符串的Dim StrClean 子显示文件 Files=DirInfo.GetFiles*.xml,IO.SearchOption.TopDirectoryOnly 对于文件中的每个文件 lstFiles.Items.AddFile 下一个 端接头Xml 如何在文件名字符串中排除扩展名,xml,vb.net,Xml,Vb.net,下面是我在列表框中显示XML文件的代码,但我希望它们不带扩展名: Dim目录=Application.StartupPath+\orders\ 将文件设置为System.IO.FileInfo Dim DirInfo作为新的System.IO.DirectoryInfoDirectory 作为字符串的Dim StrClean 子显示文件 Files=DirInfo.GetFiles*.xml,IO.SearchOption.TopDirectoryOnly 对于文件中的每个文件 lstFiles
如何显示没有.xml扩展名的文件?如注释中所述,请使用 子显示文件 Files=DirInfo.GetFiles*.xml,IO.SearchOption.TopDirectoryOnly 对于文件中的每个文件 lstFiles.Items.AddPath.GetFileNameWithoutExtensionFile.Name 下一个 端接头 此外,最好使用Path.Combine将路径与FolderName连接起来。您不必担心前导/尾随反斜杠,然后: Dim目录为String=Path.CombineApplication.StartupPath,订单
您可能想看看我上周为c编写的、转换为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
使用该方法。这个类有很多非常有用的方法来分离和重新组合文件名和目录的不同方面。非常感谢,伙计,非常有用!我刚刚在这里添加了Convert.ToString:lstFiles.Items.AddPath.GetFileNameWithoutExtensionConvert.ToString,以转换字符串值中的文件信息类型。@Handryck编辑了我的答案。文件应该是File.Name。