我跟随方法在以下链接中以编程方式映射了网络驱动器: 使用C#映射网络驱动器
驱动器似乎已正确连接,因为我可以在C#中查询目录和文件。但是我在计算机上看不到驱动器。我的目标是为用户以编程方式映射某些驱动器。我不想使用batch / cmd ... Windows 10可能有问题吗?或者此代码仅对编程方法有用吗?
亲切的问候
使用代码:
Utility.NetworkDrive.MapNetworkDrive("R", @"\\unc\path");
var dirs = Directory.GetDirectories("R:"); // got many nice directories...
Utility.NetworkDrive.DisconnectNetworkDrive("R", true);
Run Code Online (Sandbox Code Playgroud)
完整代码:
namespace Utility
{
public class NetworkDrive
{
private enum ResourceScope
{
RESOURCE_CONNECTED = 1,
RESOURCE_GLOBALNET,
RESOURCE_REMEMBERED,
RESOURCE_RECENT,
RESOURCE_CONTEXT
}
private enum ResourceType
{
RESOURCETYPE_ANY,
RESOURCETYPE_DISK,
RESOURCETYPE_PRINT,
RESOURCETYPE_RESERVED
}
private enum ResourceUsage
{
RESOURCEUSAGE_CONNECTABLE = 0x00000001,
RESOURCEUSAGE_CONTAINER = 0x00000002,
RESOURCEUSAGE_NOLOCALDEVICE = 0x00000004,
RESOURCEUSAGE_SIBLING = 0x00000008,
RESOURCEUSAGE_ATTACHED = 0x00000010
}
private enum ResourceDisplayType
{
RESOURCEDISPLAYTYPE_GENERIC,
RESOURCEDISPLAYTYPE_DOMAIN,
RESOURCEDISPLAYTYPE_SERVER,
RESOURCEDISPLAYTYPE_SHARE, …Run Code Online (Sandbox Code Playgroud) 我创建了一个 BizTalk 自定义管道组件,它将所有消息部分压缩到一个 zip 流中。在一些失败之后,我在一个单独的测试项目中创建了以下测试方法。
基本上,我得到一个 XML 文件,其中包含一个文件名和一个 UUID,我用它来调用存储过程并获取数据库条目的 Base64 编码内容。base64 内容似乎有效,因为在对其进行解码并将其保存到文件系统后,Windows 资源管理器可以毫无问题地读取文件。
将存档流保存到文件系统后,当我尝试提取文件时,我从 7Zip 收到以下错误消息:“数据意外结束”。如果我尝试仅使用 7Zip 打开文件,则没有问题。我什至可以从 7Zip 资源管理器中打开文件。
如果我尝试使用以下代码从 C# 读取文件,则会收到错误消息:“找不到中央目录记录的结尾。”
解压代码:
private static void ReadDat() {
var path = @"...\zip\0e00128b-0a6e-4b99-944d-68e9c20a51c2.zip";
var stream = System.IO.File.OpenRead(path);
// End of Central Directory record could not be found:
var zipArchive = new ZipArchive(stream, ZipArchiveMode.Read, false);
foreach(var zipEntry in zipArchive.Entries) {
var stream = zipEntry.Open();
Console.WriteLine(stream.Length);
}
}
Run Code Online (Sandbox Code Playgroud)
邮政编码:
private static void StreamUuidList() {
var path = @"...\2017-08-05T132705.xml";
var xdoc = XDocument.Load(System.IO.File.OpenRead(path)); …Run Code Online (Sandbox Code Playgroud) 我具有以下映射配置:
入门级:
entity
.HasOne(e => e.CurrentHandling)
.WithOne()
.HasForeignKey<Entry>(e => e.CurrentHandlingID)
;
entity
.HasMany(e => e.Handlings)
.WithOne(h => h.Entry)
.HasForeignKey(h => h.EntryID)
;
Run Code Online (Sandbox Code Playgroud)
处理类:
entity
.HasOne(h => h.Entry)
.WithMany(e => e.Handlings)
.HasForeignKey(h => h.EntryID)
.OnDelete(Microsoft.EntityFrameworkCore.Metadata.DeleteBehavior.Restrict);
Run Code Online (Sandbox Code Playgroud)
当我尝试保存上下文时,出现以下异常:
System.InvalidOperationException:'无法保存更改,因为在要保存的数据中检测到循环依赖性:'ForeignKey:Entry.CurrentHandlingID-> Handling.HandlingID唯一ToPrincipal:CurrentHandling,ForeignKey:Handling.EntryID-> Entry.EntryID ToDependent: ToPrincipal的处理:输入'。
测试数据:
errorRepo.EnableBulkModus();
var handling = errorRepo.AddHandling(new Handling {
CorrectedMessage = "correct",
HandlingStatusID = 7,
Updated = DateTime.UtcNow,
UpdatedBy = nameof(DbInitializer)
});
var reference = errorRepo.AddReference(new Reference {
ForeignKeyTypeID = 4,
ForeignKeyValue = "42",
Name = "SystemB",
ReferenceTypeID = 6 …Run Code Online (Sandbox Code Playgroud)