小编Rus*_*ips的帖子

是否有 Avro 的“持续时间”逻辑类型的 API 实现?

当前的 Apache Avro (1.8.2) 文档提到了“持续时间”逻辑类型:

持续时间逻辑类型注释大小为 12 的 Avro 固定类型,它存储三个小端无符号整数,代表不同时间粒度的持续时间。第一个以月为单位存储一个数字,第二个以天为单位存储一个数字,第三个以毫秒为单位存储一个数字。

虽然这一切都说得通,但我在 .Net 或 Java 库中都找不到实际的实现。逻辑类型文档清楚地列出了除持续时间(日期、时间毫秒、时间微秒、时间戳毫秒和时间戳微秒)之外的所有逻辑类型。

“持续时间”在我的 Avro 架构中相应定义:

{
    "type": "record",
    "name": "DataBlock",
    "fields": [
    {
        "name": "duration",
        "type": {
            "type": "fixed",
            "name": "DataBlockDuration",
            "size": 12
        }
    }]
}
Run Code Online (Sandbox Code Playgroud)

在.Net(请原谅VB)中,我必须手动序列化持续时间:

Dim ret(11) As Byte
Dim months = BitConverter.GetBytes(duration.Months)
Dim days = BitConverter.GetBytes(duration.Days)
Dim milliseconds = BitConverter.GetBytes(duration.Milliseconds)

Array.Copy(months, 0, ret, 0, 4)
Array.Copy(days, 0, ret, 4, 4)
Array.Copy(milliseconds, 0, ret, 8, 4)
Run Code Online (Sandbox Code Playgroud)

在 Java 中反序列化时,我必须通过执行以下操作转换为 …

java duration avro

6
推荐指数
1
解决办法
966
查看次数

当路径以"\ CON"结尾时,为什么IO.DirectoryInfo.FullName会中断?

我正在使用IO.DirectoryInfo来清理路径.但是,当路径以"\ CON"结尾时,它似乎表现出奇怪的行为.例如:

IO.DirectoryInfo("C:\FOOBAR\").FullName
Run Code Online (Sandbox Code Playgroud)

将返回:

C:\FOOBAR\
Run Code Online (Sandbox Code Playgroud)

但是,在这些例子中:

IO.DirectoryInfo("C:\CON").FullName
IO.DirectoryInfo("C:\SUB\CON").FullName
IO.DirectoryInfo("..\CON").FullName
IO.DirectoryInfo("CON").FullName
Run Code Online (Sandbox Code Playgroud)

返回值始终为:

\\.\CON
Run Code Online (Sandbox Code Playgroud)

因此,当用户想要创建一个名为"CON"的目录时,整个程序就会爆炸.

在我过去看过.Net Framework所做的所有奇怪的事情中,这都是需要的.谁能解释一下这里发生了什么?

c# vb.net

1
推荐指数
1
解决办法
374
查看次数

标签 统计

avro ×1

c# ×1

duration ×1

java ×1

vb.net ×1