小编Hüs*_*ğlı的帖子

如果创建目录不存在,如何创建目录?

如果目录不存在,我在这里有一段代码会中断:

System.IO.File.WriteAllText(filePath, content);
Run Code Online (Sandbox Code Playgroud)

在一行(或几行)中,是否可以检查导致新文件的目录是否不存在,如果不存在,是否可以在创建新文件之前创建它?

我正在使用.NET 3.5.

.net c# file-io

190
推荐指数
3
解决办法
15万
查看次数

SURF vs SIFT,SURF真的更快吗?

我正在使用SURFSIFT测试一些物体检测.

SURF声称比SIFT更快更强大,但我在测试中发现这不是真的.具有中等图像(600*400)的SIFT与SURF的速度相同,它可以很好地识别物体(甚至可能比SURF更好).

难道我做错了什么?

[编辑]

请注意,有一篇文章解释了如何通过对opencv代码进行一些更改来提高SURF的速度.

如果你认识一些活跃的opencv开发者,请让他看看.

algorithm opencv surf sift

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

如何在Visual Studio 2015中为多个解决方案和项目设置单个Nuget包文件夹

我们正在Visual Studio 2015中开发多个解决方案.这些解决方案共享一些需要nuget包的核心项目.当从一个解决方案添加nuget包并稍后由另一个解决方案打开时,无法解析nuget引用.

文件夹结构如下:

  • 代码库
    • SharedProjects
      • SharedProject1
    • SolutionA
      • WebProjectA
      • 包文件夹A.
    • SolutionB
      • WebProjectB
      • 包文件夹B.

当我打开nuget包SharedProject1SolutionA,dll参考显示了路径packages folder A.当SolutionB在另一台计算机被打开,SharedProject1具有基准误差,因为packages folder A不存在.

我已阅读此解决方案:当一些项目被列入多种解决方案设置为所有解决方案的常见的NuGet包文件夹,但是这个因为没有解决问题repositoryPath的关键.nu​​get /不与应用NuGet.config文件Visual Studio 2015Nuget 3.4.3

.net c# nuget nuget-package-restore visual-studio-2015

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

Oracle ODP.NET托管驱动程序在64位运行速度比在32位运行速度慢50-100%

我刚刚将一些NUnit测试项目从x86切换到AnyCPU,并开始使用nunit-console.exe而不是nunit-console-x86.exe在64位运行时运行它们.这使我的测试持续时间延长了大约50-100%.我可以在任何测试程序集上轻松地重复模拟它,甚至可以对测试运行进行分析,但是我无法弄清楚导致性能损失的原因,因为只有一切看起来在64位中表现得更慢.我还尝试在几台不同的机器上运行测试,结果相同.

测试程序集使用Spring.NET IOC和Oracle ODP托管提供程序(这是将测试从x86切换到AnyCPU的原因)以执行集成测试.测试运行的唯一区别实际上是32对64位环境或nunit可执行文件(nunit-console-x86.exe vs nunit-console.exe).

是否存在如此大的测试持续时间差异的一般原因?或者有没有人知道我应该检查什么来找出问题的原因?


跟进:

问题是由于本月8日发布的Oracle ODP.NET托管驱动程序(版本121010或4.121.1.0)引起的.它显然有很多性能问题,其中一个是64位性能损失.在32位环境下运行以下代码时,持续时间约为0.6秒,在64位运行时运行时间约为1.5秒:

        var sw = Stopwatch.StartNew();
        using (var conn = new OracleConnection(ConnectionString))
        {
            conn.Open();

            for (var i = 0; i < 100; i++)
            {
                using (var cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "select sysdate from dual";
                    var result = Convert.ToDateTime(cmd.ExecuteScalar());
                }
            }
        }

        Console.Out.WriteLine(sw.Elapsed);
Run Code Online (Sandbox Code Playgroud)

现在是否有任何技巧如何从Oracle ODP.NET托管驱动程序中获得可接受的性能,或者即使Oracle声称它是"最终"版本,它是否还没有生产就绪?除了回到原生ODP.NET提供商之外,我还有其他选择吗?

c# oracle performance odp.net 32bit-64bit

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

如何在ASP.NET MVC中获取不带参数的Action的URL

我有一个ASP.NET MVC Web应用程序,它运行在IIS上的虚拟目录中.在应用程序中,我有一个Action,它接受一个名为Id的参数.

public class MyController : MyBaseController 
{
    public ActionResult MyAction(int id)
    {
        return View(id);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我使用参数123调用Action时,生成的URL如下所示:

http://mywebsite.net/MyProject/MyController/MyAction/123
Run Code Online (Sandbox Code Playgroud)

基本控制器中,如何在没有任何参数的情况下优雅地找到Action的URL?我想要的字符串是:/MyProject/MyController/MyAction

关于此问题还有其他问题,但它们不包括这些案例.例如,Request.Url.GetLeftPart仍然给我Id.

c# asp.net url asp.net-mvc routes

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

Cloud 9 IDE无法连接到数据库

我已经尝试了很多东西来连接到我的数据库,cloud 9但我一直遇到类似的错误.

这是我的PHP代码:

<?php
    // Create connection
    $con=mysqli_connect($IP, "$C9_USER", "", "c9");

    //(host,username,password,dbname)<- guide for me

    // Check connection
    if (mysqli_connect_errno()) {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
?>
Run Code Online (Sandbox Code Playgroud)

我从w3schools获取了基本代码,并将其用于解释cloud 9的mysql数据库如何工作的文档:https://docs.c9.io/setting_up_mysql.html


但是,如果没有得到以下错误,我似乎无法连接:

Failed to connect to MySQL: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

所以我想知道是否有不同的方法将套接字更改为云9建议的地址:注意: MySQL socket file can be found in ~/lib/mysql/socket/mysql.sock

php mysql sockets cloud9-ide

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