有没有办法使用 C# ASP.NET Core 在不同的操作系统(主要是 Linux 和 Windows)上找到可用空间。
我找到了一种方法(使用 DriveInfo)通过将驱动器名称作为参数传递来获得可用空间。这在 Windows 上运行良好,但我也希望在 Linux 上也是如此。
public static int CheckDiskSpace(string driveLetter)
{
DriveInfo drive = new DriveInfo(driveLetter);
var totalBytes = drive.TotalSize;
var freeBytes = drive.AvailableFreeSpace;
var freePercent = (int)((100 * freeBytes) / totalBytes);
return freePercent;
}
Run Code Online (Sandbox Code Playgroud)
传递驱动器 (C:/) 如下:
var freespace = DriveDetails.CheckDiskSpace("C:/");
Run Code Online (Sandbox Code Playgroud)
更新:这也适用于 Linux。
我有一个WIX项目,我可以在Windows系统上为该项目创建一个MSI.
但是,有没有办法在MAC上使用WIX创建MSI [在MAC上安装WIX].我知道MSI在windows上的工作.我只需要我的MAC来创建一个MSI所以,我以后可以在Windows上使用它.
当我试图在我的MAC上做"dotnet msbuild"时,我明白了 "SampleApp.wixproj: error: Wix toolset build tools need's to be installed".
我尝试使用docker来创建带有WIX的MSI,但是我得到的unknown symbol参考错误很少.
我有以下代码。还有一个返回字符串数组的 web api,
const express = require('express');
const proxy = require('express-http-proxy');
var app = express();
app.use('/proxy', proxy('http://localhost:56660/api/values'));
app.listen(3000);
Run Code Online (Sandbox Code Playgroud)
当我尝试执行 localhost:3000/proxy 时,我没有得到响应,但是当我使用 时app.use('/proxy', proxy('www.google.com'));,它会重定向到 google 网站。
请给我建议一个最佳方法/解决方案: 我想创建一个代理服务器,它从浏览器(应用程序)获取 url,修改 url,调用新 url 并将响应发送回浏览器(应用程序)。
我正在尝试将 AngularJS 指令转换为 Angular。使用ngUpgrade.
我有 AngularJS 指令如下:
angular.directive('countClicks', function($timeout) {
return {
restrict: 'A',
link: function(scope, elem, attrs) {
scope.clickCount = 0;
elem.on('click', function() {
// Code
});
}
};
});
Run Code Online (Sandbox Code Playgroud)
转换为角度:
@Directive({
selector: '[count-click]'
})
export class CountClickDirective implements AfterViewInit {
constructor(public elem: ElementRef) { }
clickCount = 0;
ngAfterViewInit() {
this.elem.nativeElement.querySelector('count-click', addEventListener('click', function() {
console.log('test directive');
}));
}
}
Run Code Online (Sandbox Code Playgroud)
ngAfterViewInit单击时不会被调用
将上面迁移的指令降级为 AngularJS,以便它可以在 AngularJS 模板中使用
.directive('countClick', <any>downgradeComponent({
component: CountClickDirective,
}))
Run Code Online (Sandbox Code Playgroud)
AngularJS 模板:
<span countClick ng-click="test()"></span>
Run Code Online (Sandbox Code Playgroud)
组件.ts: …
我有一个清单:
List<Dev> devices= new List<Dev>(){
new Dev{ Add="5",Name="A" },
new Dev{ Add="5",Name="a" },
new Dev{ Add="9",Name="b" },
new Dev{ Add="6",Name="c" },
new Dev{ Add="9",Name="b" },
};
Run Code Online (Sandbox Code Playgroud)
我想编写一个 Linq“Lambda 表达式”,它返回不重复的记录,以及基于列表中“名称”的重复记录中的第一条记录。查找重复项时也忽略大小写
预期输出:
Add=5, Name=A
Add=9, Name=b
Add=6, Name=c
Run Code Online (Sandbox Code Playgroud)
查询我现在拥有的内容(它返回重复的“名称”):
results.GroupBy(x => x.Name, StringComparer.OrdinalIgnoreCase)
.Where(g => g.Count() > 1)
.Select(g => g.Key)
.ToList();
Run Code Online (Sandbox Code Playgroud) 我已经创建了我的应用程序的新版本。我有一个包含值的数据库,现在我想使用实体框架迁移将一列从先前版本中的一个表移动到新版本中包含值的另一个表。
public override void up(){
Create.Column("Name").OnTable("Table2");
Delete.Column("Name").FromTable("Table1");
}
Run Code Online (Sandbox Code Playgroud)
实际输出:
Table1 in old Version:
-------------
|Id | Name|
-------------
|1 | A |
-------------
Table2 in old Version:
-------------
|Id | Age |
-------------
|1 | 4 |
-------------
Table1 in new Version:
------
|Id |
------
|1 |
------
Table2 in new Version:
------------------
|Id | Age | Name|
------------------
|1 | 4 | null|
------------------
Run Code Online (Sandbox Code Playgroud)
预期输出:
Table1 in old Version:
-------------
|Id | Name|
-------------
|1 | A | …Run Code Online (Sandbox Code Playgroud) c# ×3
.net ×1
.net-core ×1
angular ×1
angularjs ×1
asp.net-core ×1
express ×1
linq ×1
msbuild ×1
ng-upgrade ×1
node.js ×1
proxy-server ×1
wix ×1