我已编写以下例程来手动遍历目录并在C#/ .NET中计算其大小:
protected static float CalculateFolderSize(string folder)
{
float folderSize = 0.0f;
try
{
//Checks if the path is valid or not
if (!Directory.Exists(folder))
return folderSize;
else
{
try
{
foreach (string file in Directory.GetFiles(folder))
{
if (File.Exists(file))
{
FileInfo finfo = new FileInfo(file);
folderSize += finfo.Length;
}
}
foreach (string dir in Directory.GetDirectories(folder))
folderSize += CalculateFolderSize(dir);
}
catch (NotSupportedException e)
{
Console.WriteLine("Unable to calculate folder size: {0}", e.Message);
}
}
}
catch (UnauthorizedAccessException e)
{
Console.WriteLine("Unable to calculate folder …
Run Code Online (Sandbox Code Playgroud) <my:DataGridTemplateColumn
CanUserResize="False"
Width="150"
Header="{Binding MeetingName, Source={StaticResource LocStrings}}"
SortMemberPath="MeetingName">
</my:DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)
我在Silverlight网格控件中有上面的列.但它给我一个XamlParser错误,因为我试图设置Header属性.有没有人这样做过?我想为多种语言做这件事.
我的绑定资源的语法也是正确的,因为我在网格外的标签中尝试了它.
我有一个使用LINQ-to-SQL和SQL Server CE 4的应用程序.我知道这不是官方支持的,但我们已经使它工作,但有以下例外.有时,在尝试更新数据库时,我们会在数据库中出现一行错误.
我们使用a DataContext
从数据库中选择一行,更新几列(一个布尔和一个字节列),然后我们调用SubmitChanges()
.当我们提交更改时,我们会收到包含以下堆栈跟踪的DivideByZeroException:
System.DivideByZeroException:尝试除以零.
在System.Data.SqlServerCe.NativeMethodsHelper.CompileQueryPlan(IntPtr的pQpCommand,字符串pwszCommandText,ResultSetOptions选项,IntPtr的[] pParamNames,IntPtr的prgBinding,的Int32 cDbBinding,IntPtr的&pQpPlan,IntPtr的PERROR)
在System.Data.SqlServerCe.NativeMethods.CompileQueryPlan(IntPtr的pQpCommand , System.Data.SqlServerCe.SqlCeCommand.ExecuteCommand(CommandBehavior behavior,
System.Data.SqlServerCe.SqlCeCommand.CompileQueryPlan())
中的字符串pwszCommandText,ResultSetOptions选项,IntPtr [] pParamNames,IntPtr prgBinding,Int32 cDbBinding,IntPtr&pQpPlan,IntPtr pError)串的方法,ResultSetOptions选项)
在System.Data.SqlServerCe.SqlCeCommand.ExecuteNonQuery()
在System.Data.Linq.SqlClient.SqlProvider.Execute(表达式查询,queryInfo queryInfo,IObjectReaderFactory工厂,对象[] parentArgs,对象[] userArgs, System.Data.Linq.SqlClient.SqlProvider.ExecuteAll中的ICompiledSubQuery [] subQueries,Object lastResult)
(表达式查询,QueryInfo [] queryInfos,IObjectReaderF actory工厂,对象[] userArguments,ICompiledSubQuery []子查询)
在System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(表达式查询)
在System.Data.Linq.ChangeDirector.StandardChangeDirector. DynamicUpdate(TrackedObject项目)
在System.Data.Linq.ChangeDirector.StandardChangeDirector.Update(TrackedObject项目)
在System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode)
在System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode)
在System.Data.Linq.DataContext.SubmitChanges()
编辑:
在分析时,问题似乎是在delete语句上生成的,类似于:
DELETE FROM [WorkItemUid] WHERE([OID] = 24151/*@ P0 /)和([WorkItemOid] = 745 / @ P1 /)和([SeriesInstanceUid] = '1.3.12.2.1107.5.1.4.54023.30000004101914490887500000063'/ @ P2 /)和([SopInstanceUid] = '1.3.12.2.1107.5.1.4.54023.30000004101913521221800001089'/ @ P3 /)和([完成] = 1)AND([FailureCount] = 0 / @ …
有没有办法将程序集属性添加到托管C++程序集?在典型的C#项目中,AssemblyInfo.cs
文件中通常有一行代码,如下所示:
[assembly: AssemblyTitle("Some Assembly")]
我有一个我想要添加的私有程序集属性(不是可以通过资源文件添加的版本属性之一),我不确定这是否可行.
我们有一个收缩包装类型的Windows服务器应用程序,我们需要在服务器上创建一个自签名证书以供某些WCF Web服务使用.从我们在网上的搜索看来,Microsoft的PlatformSDK中的makecert实用程序似乎无法与我们的应用程序一起分发,因此我们正在寻找替代方案.
有谁知道如何使用OpenSSL创建证书并将其放入Windows LocalMachine证书存储区?或者,或者直接将证书插入到.NET应用程序的商店中,我们应该使用openssl创建证书文件吗?任何帮助/建议将不胜感激.
我有一个SQL 2008 R2数据库,其中一个表中有大约200万行,并且在使用参数化SQL时,我在努力处理特定查询的性能.
在表格中,有一个包含名称的字段:
[PatientsName] nvarchar NULL,
该领域还有一个简单的索引:
CREATE NONCLUSTERED INDEX [IX_Study_PatientsName] ON [dbo].[Study]
(
[PatientsName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [INDEXES]
GO
Run Code Online (Sandbox Code Playgroud)
当我在管理工作室中执行此查询时,执行大约需要4秒:
declare @StudyPatientsName nvarchar(64)
set @StudyPatientsName= '%Jones%'
SELECT COUNT(*) FROM Study WHERE Study.PatientsName like @StudyPatientsName
但是,当我执行此查询时:
SELECT COUNT(*) FROM Study WHERE Study.PatientsName like '%Jones%'
执行需要花费半秒多一点的时间.
查看执行计划,没有参数化的查询使用上面提到的索引进行索引扫描,这显然是有效的.参数化查询使用索引,但对索引执行范围搜索.
部分问题是拥有领先的通配符.当我删除前导通配符时,两个查询都会在几分之一秒内返回.不幸的是,我确实需要支持领先的通配符.
我们有一个自行开发的ORM,可以在问题产生的地方进行参数化查询.这些查询是基于用户的输入完成的,因此参数化查询有助于避免像SQL注入攻击这样的事情.我想知道是否有办法制作参数化查询功能以及非参数化查询?
我做了一些研究,研究了不同的方法来给查询优化器提供提示,试图强制优化器重做每个查询的查询计划,但还没有找到任何改进性能的方法.我试过这个查询:
SELECT COUNT(*) FROM …
Run Code Online (Sandbox Code Playgroud) 我用这个命令创建了一个密钥文件:
sn.exe -k 2048 Build.snk
我想用.NET阅读这个密钥.我无法找到任何关于.snk格式的文档,所以我想知道C#中是否有一种读取.snk文件的方法?
我提出问题的原因是将.snk文件用于签署程序集以外的目的.作为下面的答案之一,.snk文件的目的实际上只是用于签署程序集.
.net ×5
c# ×2
windows ×2
attributes ×1
certificate ×1
encryption ×1
linq-to-sql ×1
managed-c++ ×1
openssl ×1
silverlight ×1
sn.exe ×1
sql-server ×1
wcf ×1