Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何在文件名字符串中排除扩展名_Xml_Vb.net - Fatal编程技术网

Xml 如何在文件名字符串中排除扩展名

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文件的代码,但我希望它们不带扩展名:

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扩展名的文件?

如注释中所述,请使用

子显示文件 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。