如果目录不存在,我在这里有一段代码会中断:
System.IO.File.WriteAllText(filePath, content);
Run Code Online (Sandbox Code Playgroud)
在一行(或几行)中,是否可以检查导致新文件的目录是否不存在,如果不存在,是否可以在创建新文件之前创建它?
我正在使用.NET 3.5.
SURF声称比SIFT更快更强大,但我在测试中发现这不是真的.具有中等图像(600*400)的SIFT与SURF的速度相同,它可以很好地识别物体(甚至可能比SURF更好).
难道我做错了什么?
[编辑]
请注意,有一篇文章解释了如何通过对opencv代码进行一些更改来提高SURF的速度.
如果你认识一些活跃的opencv开发者,请让他看看.
我们正在Visual Studio 2015中开发多个解决方案.这些解决方案共享一些需要nuget包的核心项目.当从一个解决方案添加nuget包并稍后由另一个解决方案打开时,无法解析nuget引用.
文件夹结构如下:
当我打开nuget包SharedProject1时SolutionA,dll参考显示了路径packages folder A.当SolutionB在另一台计算机被打开,SharedProject1具有基准误差,因为packages folder A不存在.
我已阅读此解决方案:当一些项目被列入多种解决方案设置为所有解决方案的常见的NuGet包文件夹,但是这个因为没有解决问题repositoryPath的关键.nuget /不与应用NuGet.config文件Visual Studio 2015和Nuget 3.4.3
我刚刚将一些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提供商之外,我还有其他选择吗?
我有一个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.
我已经尝试了很多东西来连接到我的数据库,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
c# ×4
.net ×2
32bit-64bit ×1
algorithm ×1
asp.net ×1
asp.net-mvc ×1
cloud9-ide ×1
file-io ×1
mysql ×1
nuget ×1
odp.net ×1
opencv ×1
oracle ×1
performance ×1
php ×1
routes ×1
sift ×1
sockets ×1
surf ×1
url ×1