我正在 OSX 中构建一个 .net core 2.0 应用程序,它是一个 WebAPI 应用程序,当 API 端点被命中时,它会创建一个带有虚拟数据的 .xlsx。当我尝试运行它(dotnet run)时,我得到
System.UnauthorizedAccessException: Access to the path '/Users/myuser/projects/myproject' is denied. ---> System.IO.IOException: Permission denied
Run Code Online (Sandbox Code Playgroud)
我尝试将它作为 sudo 运行并更改它正在写入的文件夹,但都没有帮助
// GET api/values/5
[HttpGet("{id}")]
public string Get(int id)
{
CreatePackage("./");
return "value";
}
public void CreatePackage(string filePath)
{
using (SpreadsheetDocument package = SpreadsheetDocument.Create(filePath, SpreadsheetDocumentType.Workbook))
{
CreateParts(package);
}
}
private void CreateParts(SpreadsheetDocument document)
{
WorkbookPart workbookPart = document.AddWorkbookPart();
GenerateWorkbookPartContent(workbookPart);
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>("rId1");
GenerateWorksheetPartContent(worksheetPart);
}
private void GenerateWorkbookPartContent(WorkbookPart workbookPart)
{
Workbook workbook = …Run Code Online (Sandbox Code Playgroud) 所以我正在编写一个从redis读取的节点应用程序,我想做一些返回数据库数量的查询,任何人都知道如何做到这一点.
所以现在基本上我所拥有的是一种获取数据库中所有键的方法,但我想要更高级别,我想迭代所有数据库,然后获取所有键.这是获取当前数据库的所有密钥的代码.
const client = redis.createClient({host: "127.0.0.1", port: 6379});
client.multi()
.keys('*', function (err, replies) {
console.log("MULTI got " + replies.length + " replies");
let dbs = [replies];
let dbData = {};
replies.forEach(function (reply, index) {
client.get(reply, function (err, data) {
console.log(reply + " " +data);
});
});
})
.exec(function (err, replies) { });
Run Code Online (Sandbox Code Playgroud)