小编gro*_*wse的帖子

C#.NET - 如何确定目录是否可写,有无UAC?

我正在开发一个需要将文件复制到文件系统上给定目录的软件.它需要适用于UAC感知操作系统(Vista,7)以及XP.为了解决写入需要UAC提升的目录的问题,应用程序实际上启动了另一个进程,其中包含一个表明需要UAC的清单.这会生成提示,然后在用户确认时执行复制.

从我所看到的,一个目录可以有三种不同的逻辑权限状态 - 可写,没有UAC提升,可写与UAC提升,不可写.

我的问题是:对于给定目录,如何可靠地确定当前用户是否可以将文件复制(并可能覆盖)到该目录,如果可以,我如何确定是否需要UAC提升?

在XP上,这可能就像检查是否允许"允许写入"权限一样简单,但在Vista/7上,有些目录未授予此权限,但UAC仍然可以执行此操作.

.net c# permissions uac

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

.NET反射:如何循环一个数组类型的对象?

我有一个方法返回一个数组,我已经在Type对象中存储了它的类型.因此,我的代码是:

Type StoryType = Type.GetType("my.ns.Story");
Type StoryTypeArray = Type.GetType("my.ns.Story[]");

object stories = SomeMethodInfo.Invoke(BigFatObject,some_params);
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我知道故事是类型的StoryTypeArray,我真正想要做的是:

foreach (Story instance in stories) { ... }
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚如何将对象stories转换为我可以循环并从中拉出数据的东西.

有任何想法吗?

.net c# reflection

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

具有幻数"0x4d3cb2a1"和"0xd4c3b2a1"的PCAP文件之间有什么区别?

我有两个PCAP文件,AB.

A具有在报头中的"魔数" d4 c3 b2 a1,B具有在报头中的"魔数" 4d 3c b2 a1.根据wireshark文档(http://wiki.wireshark.org/Development/LibpcapFileFormat),只有0xd4c3b2a1并且0xa1b2c3d4是有效的魔术数字,这使我认为B不是有效的幻数.

file在linux上运行支持这个,输出为file A:

tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 65535)
Run Code Online (Sandbox Code Playgroud)

file B 简单地说:

data
Run Code Online (Sandbox Code Playgroud)

看起来无论用什么写的B都是以'交换'(小端)格式写的,但用错误的方式用半字节写了最后的twp字节.鉴于我期望一个大端系统以相反的方式编写整个int32,而不是单个字节,给出一个神奇的数字1a 2b 3c 4d.

B有效的文件吗?如果是这样,为什么?不同的系统可以以任意顺序将32位整数和单个半字节写入一个字节吗?

endianness pcap

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

多次调用具有多个参数的puppet定义的资源

我有一个简单的木偶定义资源,如下所示:

define mything($number, $device, $otherthing) {
    file{"/place/${number}":
        ensure => directory
    }
    mount { "/place/${number}":
        device => $device,
        ensure => mounted,
        require => File["/place/${number}"]
    }
    file {"/place/${number}/${otherthing}":
        ensure => directory,
        require => Mount['/place/${number}']
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要使用不同的参数多次调用此资源,但无法在没有显式mything()重复调用的情况下弄清楚如何执行此操作.

理想情况下,我将所有参数存储在某种数组中,然后调用mything($array),有点像这样:

$array = [
    {number => 3, something => 'yes', otherthing => 'whatever'},
    {number => 17, something => 'ooo', otherthing => 'text'},
    {number => 4, something => 'no', otherthing => 'random'},
]

mything($array)
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.我很确定如果我的资源只使用一个参数并且我只有一个平坦的数组值,这可以工作,但是我可以用多个命名参数做同样的事情吗?

puppet

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

如何使用tcpdump从大型pcap文件中获取特定范围的数据包?

我有一个巨大的pcap文件(100GB),我对少量的数据包感兴趣,我知道数字是5,000,000到5,000,020.

如何使用tcpdump读取pcap文件,按数据包编号(或范围)过滤掉数据包,然后将其写入新的pcap文件?

tcpdump

7
推荐指数
2
解决办法
1万
查看次数

JPA - 从计算列设置实体类属性?

我只是在一个运行在Glassfish 3上的简单Java Web应用程序中处理JPA(持久性提供程序是EclipseLink).到目前为止,我真的很喜欢它(除了netbeans/glassfish交互中的错误)但是有一件事我希望能做到,我不知道该怎么做.

我有一个映射到数据库表(文章)的实体类(文章).我正在尝试对返回计算列的数据库执行查询,但我无法弄清楚如何设置Article类的属性,以便在调用查询时属性由列值填充.

如果我定期"选择id,title,body from article"查询,我会得到一个精美的Article对象列表,其中填充了id,title和body属性.这很好用.

但是,如果我这样做:

Query q = em.createNativeQuery("select id,title,shorttitle,datestamp,body,true as published, ts_headline(body,q,'ShortWord=0') as headline, type from articles,to_tsquery('english',?) as q where idxfti @@ q order by ts_rank(idxfti,q) desc",Article.class);
Run Code Online (Sandbox Code Playgroud)

(这是在Postgres上使用tsearch2进行全文搜索 - 这是一个特定于数据库的函数,所以我使用的是NativeQuery)

您可以看到我正在获取一个名为标题的计算列.如何向我的Article类添加标题属性,以便它被此查询填充?

到目前为止,我已经尝试将其设置为@Transient,但最终它始终为null.

java postgresql jpa eclipselink

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

Hadoop distcp 到 HTTP 代理后面的 S3

我正在尝试distcp将一些文件从 HDFS 复制到 Amazon s3。我的 Hadoop 集群通过 HTTP 代理连接到互联网,但我无法弄清楚在连接到 s3 时如何指定它。我目前遇到以下问题:

httpclient.HttpMethodDirector: I/O exception (org.apache.commons.httpclient.ConnectTimeoutException) caught when processing request: The host did not accept the connection within timeout of 60000 ms
Run Code Online (Sandbox Code Playgroud)

这表明它正在尝试直接连接到亚马逊。如何distcp使用代理主机?

hadoop amazon-s3 hdfs

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

django模板中查询集的简单排名

我在一个简单的django应用程序中有一个模型,记录了参加比赛的人的分数.我有两个模型对象,Entry和Person.每个条目都有一个人,一个人有多个条目.

我想生成一个页面,显示每个用户,他们的总分和他们的排名.

我到目前为止的命令如下:

Entry.objects.values('person__name').annotate(total=Sum('score')).order_by('-total')
Run Code Online (Sandbox Code Playgroud)

我可以使用for块很好地将结果输出到页面上.我唯一没有得到的是排名.

向每条记录添加记录的数字排名的最佳方法是什么,包括当两个分数相同时,排名反映这一点(即"4 =")?尝试使用forblock.counter和一些先行/后置机制在模板中执行此操作会更好,还是尝试将此字段用于查询本身?

django django-queryset rank

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

如何在 Kotlin 中将依赖项注入到接口委托中?

我试图弄清楚如何将依赖项注入到 Kotlin 中的接口委托中。我有一堂课:

class MyThingie {}
Run Code Online (Sandbox Code Playgroud)

我想created_time向此类添加一个字段,该字段也可能添加到其他类中。因此,我可以创建一个接口和该接口的实例实现,然后将该委托添加到类定义中:

interface ThingieWithCreatedTS {
    val created_ts: Long
}

object ThingieCreatedAtNow : ThingieWithCreatedTS {
    override val created_ts: Long = System.currentTimeMillis()
}

class MyThingie : ThingieWithCreatedTS by ThingieCreatedAtNow {}
Run Code Online (Sandbox Code Playgroud)

这很棒。现在我可以调用created_ts任何实例MyThingie并获取它创建的时间戳。然而,现在这很难测试。

我真的不想尝试模拟System,并且我理解正确的模式是将某种 Clock 实例注入任何需要知道当前时间的对象中。这样,我可以在代码中提供一个 RealClock,并且在测试中我可以提供一个 FakeClock(我可以控制其输出)。

目前尚不清楚我如何在这种模式上做到这一点。如何将实现实例传递给委托?

delegates dependency-injection composition kotlin

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