问题列表 - 第13405页

C#测试用户是否具有文件夹的写入权限

我需要测试用户是否可以在实际尝试之前写入文件夹.

我已经实现了以下方法(在C#2.0中),它尝试使用Directory.GetAccessControl()方法检索文件夹的安全权限.

private bool hasWriteAccessToFolder(string folderPath)
{
    try
    {
        // Attempt to get a list of security permissions from the folder. 
        // This will raise an exception if the path is read only or do not have access to view the permissions. 
        System.Security.AccessControl.DirectorySecurity ds = Directory.GetAccessControl(folderPath);
        return true;
    }
    catch (UnauthorizedAccessException)
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在谷歌搜索如何测试写入访问时,没有出现这样的情况,实际测试Windows中的权限似乎非常复杂.我担心我过度简化了事情并且这种方法并不健全,尽管它似乎确实有效.

我的方法是否可以测试当前用户是否具有写访问权限?

c# directory permissions

179
推荐指数
11
解决办法
18万
查看次数

比较两个枚举*类型*是否等价?

在我的申请中,我有两个等价enum的.一个住在DAL,另一个住在服务合同层.它们具有相同的名称(但位于不同的名称空间中),并且应具有相同的成员和值.

我想写一个强制执行此操作的单元测试.到目前为止,我有以下内容:

public static class EnumAssert
{
    public static void AreEquivalent(Type x, Type y)
    {
        // Enum.GetNames and Enum.GetValues return arrays sorted by value.
        string[] xNames = Enum.GetNames(x);
        string[] yNames = Enum.GetNames(y);

        Assert.AreEqual(xNames.Length, yNames.Length);
        for (int i = 0; i < xNames.Length; i++)
        {
            Assert.AreEqual(xNames[i], yNames[i]);
        }

        // TODO: How to validate that the values match?
    }
}
Run Code Online (Sandbox Code Playgroud)

这适用于比较名称,但如何检查值是否匹配?

(我正在使用NUnit 2.4.6,但我认为这适用于任何单元测试框架)

c# enums unit-testing

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

不关心scanf

想象一下:

你读了一个字符串,scanf()但你只需要字符串中的一些数据点.

是否有一种简单的方法可以丢弃无关的信息,而不会失去检查相应数据是否存在的能力,因此您仍然可以轻松地拒绝格式错误的字符串?

例:

const char* store = "Get: 15 beer 30 coke\n";
const char* dealer= "Get: 8 heroine 5 coke\n";
const char* scream= "Get: f* beer 10 coke\n";
Run Code Online (Sandbox Code Playgroud)

我想接受第一个字符串,但忘记了啤酒,因为啤酒是yuckie.我想拒绝第二和第三个字符串,因为它们显然不适合7/11;

所以我在考虑以下结构:

char* bId = new char[16];
char* cId = new char[16];
int cokes;
sscanf([string here], "Get: %d %s %d %s\n", [don't care], bId, &cokes, cId);
Run Code Online (Sandbox Code Playgroud)

这样我会保持格式检查,但是我会为[不关心]放置什么不会让编译器发出呜呜声?

当然我可以制作一个我以后不再使用的变量,但这不是这个问题的重点.另外检查左侧和右侧是一个明显的解决方案,我不在这里寻找.

那么,有没有办法不关心但仍然检查scanf和朋友中的一段字符串的类型?

c c++ scanf

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

为多模块项目创建所有jar和源jar的存档

我正在建立一个拥有六个模块的Maven项目.

我可以使用Maven或Ivy自己导入它,但其他团队也想使用这些罐子,但他们的做法是将罐子和源罐子提交给版本控制.

我想生成所有模块及其来源的zip/tar程序集,但是他们可以使用它们.

我已经阅读了Maven Assembly Plugin:包含模块二进制文件,但我不喜欢使用它,因为:

  1. 链接FAQ条目返回404;
  2. 我需要手动指定所有模块.

还有其他选择吗?


更新:我尝试使用内置的程序集描述符

 mvn assembly:assembly -DprojectModulesOnly=true
 mvn assembly:assembly
Run Code Online (Sandbox Code Playgroud)

两者都失败了

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to create assembly: Error creating assembly archive bin: You must set at least one file.
Run Code Online (Sandbox Code Playgroud)

在所有模块构建运行之后.

maven-2

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

iPhone发行证书丢失的私钥.什么是解决方案?

在操作系统升级期间,我丢失了iPhone分发证书的私钥.现在我想将新的iPhone应用程序上传到App Store,这需要我使用iPhone分发配置文件/证书对应用程序进行签名.有没有办法创建一个新的iPhone分发证书.我没有在开发人员门户网站上找到任何"新.."选项.

还有一个问题:我是否必须使用iPhone分发证书签署代码才能在App Store上提交?或者我可以使用iPhone开发证书在App Store上签名并上传吗?

提前致谢...

iphone

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

Ruby:Proc#call vs yield

thrice方法的Ruby中,以下两个实现之间的行为差​​异是什么?

module WithYield
  def self.thrice
    3.times { yield }      # yield to the implicit block argument
  end
end

module WithProcCall
  def self.thrice(&block)  # & converts implicit block to an explicit, named Proc
    3.times { block.call } # invoke Proc#call
  end
end

WithYield::thrice { puts "Hello world" }
WithProcCall::thrice { puts "Hello world" }
Run Code Online (Sandbox Code Playgroud)

通过"行为差异",我包括错误处理,性能,工具支持等.

ruby yield

75
推荐指数
4
解决办法
4万
查看次数

如何在Java中解析十六进制的否定长

我们有一个需要读取十六进制数的J2ME应用程序.对于某些手机来说,应用程序已经太大了,所以我们尽量不包含任何其他编解码器或编写我们自己的功能来执行此操作.

所有数字都是十六进制的64位有符号整数,当我们使用Long.ParseLong(十六进制,16)时,它正确处理正数,但它会在负数上抛出异常,

    long l = Long.parseLong("FFFFFFFFFFFFFFFF", 16);
Run Code Online (Sandbox Code Playgroud)

我们如何使用Java本身提供的类从该十六进制字符串中获取-1?

有些人可能会建议我们应该将我们的十六进制写为-1,就像Java预期的那样 对不起,格式由协议修复,我们无法更改.

java hex

11
推荐指数
2
解决办法
4872
查看次数

使用JUnit 4注释测试多个异常

是否可以在单个JUnit单元测试中测试多个异常?例如,我知道可以使用一个例外

    @Test(expected=IllegalStateException.class)
Run Code Online (Sandbox Code Playgroud)

现在,如果我想测试另一个异常(例如,NullPointerException),可以在相同的注释,不同的注释中完成吗,还是我需要完全编写另一个单元测试?

java junit exception

26
推荐指数
3
解决办法
4万
查看次数

SQL:找到百分位数

我有一个表有一个名为的数字列Score.我想在该表上执行一个查询,其结果将有100行,每行代表与该百分位对应的分数.例如,结果可能如下所示:

 Percentile | Score
---------------------
 01         | 10
 02         | 12
 03         | 12
 04         | 17
 ...        | ...
 99         | 1684
 100        | 1685
Run Code Online (Sandbox Code Playgroud)

上面结果表中的分数值是原始表中存在的实际分数值,并且未进行插值.插值结果会更好,但不是必需的.

可能有几种启发式方法可以产生这样的结果.我今天使用的(在代码中)基本如下 - 与百分位数对应的分数值将是分数值,其中:分数较小的行数除以总行数,四舍五入为整数,等于百分位数(我希望很清楚)

如果它们更容易实现,我可以考虑其他启发式方法

我正在使用MS-SQL,但希望能够在MySQL上运行的解决方案.

实现这一目标的最佳方法是什么?

sql

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

使用数据库保存应用程序设置

我正在寻找使我们的应用程序更具可扩展性和更易于操作的方法,而无需更改 web.config (或者,在我们的例子中,是包含 appsettings 节点的 application.config 文件)。

我考虑过的一种方法是将应用程序设置保留在具有 sqlcachedependency 的数据库表中。这意味着:

  • 每当数据库中的设置发生更改时,缓存就会失效,并再次检索设置,从而实时更新应用程序,而无需更改文件并重新启动整个应用程序。
  • 我们可以创建一个自定义工具来更改设置。

我认为的缺点是,这可能会导致严重的逻辑问题,因为如果您有一些东西可以在流程开始时检查应用程序设置,然后它在中途发生变化,您最终可能会无意中改变流程,如无需重新启动完整的应用程序。

有办法解决这个问题吗?

是否有更好的方法来管理应用程序设置,以便您可以一次性远程远程更改一台、几台或所有服务器的应用程序设置?

c# database asp.net web-config appsettings

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