xml - 将 xml 从一个文件夹移动到另一个文件夹时出错。字母之间为空

标签 xml vb.net windows web-services wcf

我正在尝试将 XML 文件从服务器中的文件夹移动到另一台服务器。当 xml 被移动时,它在字母之间出现空值。 (示例:<[null]F[null]o[...]r[...]m[...]\n> != '<'form'\'>)('引用说明')

这是我的场景。我有一个 WebService 可以将 XML 文件传输到我的服务器 SA 中的文件夹“received”。我在另一台服务器上也有一个 Windows 服务,用于检查新文件是否转到文件夹“已​​接收”,该服务将文件从服务器 SA 中的文件夹 A 移动到服务器 SA 中的文件夹“已​​处理”。为了将文件移动到文件夹“已​​处理”,此服务必须使用 WCF 服务将该 xml 传输到服务器 SB 中的文件夹 C。

服务器 SA 中的文件在字母之间没有空值,但我不知道为什么它在我的 SB 服务器中有它。

这是我用来移动文件的代码。

Dim fs As New FileStream(Path.Combine(sourcepath, NombreEncuesta), FileMode.Open)
Dim archivo(fs.Length) As Byte
fs.Read(archivo, 0, archivo.Length)
sb.FileSend = archivo
fs.Close()

最佳答案

我解决了我的问题。问题不在于打开和读取服务器中的字节。问题出在文件的来源中(在转到“收到的文件夹”之前)。

当我写入文件字节时出现问题,我正在使用 This 读取和写入文件字节。方法,然后将文件移动到文件夹“已​​接收”。该方法为字符串的每个字节提供了一个空字节。

Byte[] MyBytes = GetBytes(MyDataSet.GetXml())

// MyBytes == {[F], 0 , [O] , 0 , [R] , 0 , [M]}

也许我得到那个答案是因为 Tim S. Said。 GetBytes 方法可能正在读取不同编码的字符串。

MyDataSet.GetXml() 方法为您提供没有编码的 Xml 文本 {<}?xml version="1.0"encoding="utf-8"?>(取下制动器)。因此,当我决定删除零字节时,我无法使用 DataSet.ReadXml ()

读取它们

当我发现这些错误时,我决定改变读取文件字节的方式。我没有使用 GetBytes(MyDataSet.GetXml()),而是使用了这个函数。

public byte[] GetBytesFromFile(string FilePath)
    {
        FileStream Reader = null;;
        byte[] bts = null ;
        try
        {
            Reader = new FileStream(FilePath, FileMode.Open);
            bts = new byte[Reader.Length];
            Reader.Read(bts, 0, (int)Reader.Length);
            Reader.Close();
        }
        catch (Exception ex)
        {
            bts = null;
        }
        finally
        {
            if (Reader != null)
                Reader.Close();
        }
        return bts;
    }

为什么我决定不使用 GetXml() 方法?因为当我读取生成的字节时,我正在编写一个没有编码的 XML。

感谢 Tim S. 的想法。

This MSDN forum helped me a Lot too

关于xml - 将 xml 从一个文件夹移动到另一个文件夹时出错。字母之间为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23640717/

相关文章:

.net - iTextSharp 中的 Unicode 符号

vb.net - 在 vb.net 中保存和加载注册表中的值

sql - 查询表达式中shortssize = S中字符串的语法错误

windows - 如何在 Windows 上的 golang 中验证父进程是否已退出?

java - Hibernate:在多对一类映射中设置默认值

xml - Go Parse XML to struct by tag 属性

PHP 字符串到 XML 文件

javascript - 使用嵌入式谷歌表单绕过 CORS

java - 如何在 Java 中检查 Windows 版本?

c# - 创建应用程序的 Hook ?