相关疑难解决方法(0)

将对象设置为null vs Dispose()

我对CLR和GC的工作方式很着迷(我正在通过C#,Jon Skeet的书籍/帖子等阅读CLR来扩展我的知识).

无论如何,说:有什么区别:

MyClass myclass = new MyClass();
myclass = null;
Run Code Online (Sandbox Code Playgroud)

或者,通过使MyClass实现IDisposable和析构函数并调用Dispose()?

另外,如果我有一个带有using语句的代码块(例如下面的代码),如果我单步执行代码并退出using块,那么对象是在处理垃圾收集时发生的吗?如果我在使用块中调用Dispose()会发生什么?

using (MyDisposableObj mydispobj = new MyDisposableObj())
{

}
Run Code Online (Sandbox Code Playgroud)

流类(例如BinaryWriter)有一个Finalize方法吗?我为什么要用它?

.net c# disposable

107
推荐指数
3
解决办法
5万
查看次数

获取Windows上给定路径的可用磁盘空间

可能重复:以
编程方式确定UNC路径中可用的空间

我正在尝试找到一个可以从C#调用的函数来检索该信息.这是我到目前为止所尝试的:

String folder = "z:\myfolder"; // It works
folder = "\\mycomputer\myfolder"; // It doesn't work

System.IO.DriveInfo drive = new System.IO.DriveInfo(folder);
System.IO.DriveInfo a = new System.IO.DriveInfo(drive.Name);
long HDPercentageUsed = 100 - (100 * a.AvailableFreeSpace / a.TotalSize);
Run Code Online (Sandbox Code Playgroud)

这可以,但只有我通过驱动器号.有没有办法通过传递一条完整的路径来检索自由空间?

谢谢.

c# windows

14
推荐指数
1
解决办法
2万
查看次数

如何获取通过网络驱动器访问的文件的UNC路径?

我正在使用VC++中的应用程序,其中使用网络驱动器来访问文件.用户手动分配驱动器,然后在应用程序中选择驱动器.这导致驱动器不总是映射到相同的服务器.

我如何获得这样一个文件的UNC路径?这主要用于识别目的.

c++ directory mfc path visual-c++

6
推荐指数
1
解决办法
5464
查看次数

如何将 PC 中的本地文件路径转换为网络相对路径或 UNC 路径?

String machineName = System.Environment.MachineName;
String filePath = @"E:\folder1\folder2\file1";
int a = filePath.IndexOf(System.IO.Path.DirectorySeparatorChar);
filePath = filePath.Substring(filePath.IndexOf(System.IO.Path.DirectorySeparatorChar) +1);
String networdPath = System.IO.Path.Combine(string.Concat(System.IO.Path.DirectorySeparatorChar, System.IO.Path.DirectorySeparatorChar), machineName, filePath);
Console.WriteLine(networdPath);
Run Code Online (Sandbox Code Playgroud)

我使用String.Concat和编写了上述代码Path.Combine以获取网络路径。但这只是一种解决方法,而不是具体的解决方案,可能会失败。是否有获取网络路径的具体解决方案?

c# vb.net

5
推荐指数
1
解决办法
1610
查看次数

DriveInfo.GetDrives()在以管理员身份运行时不返回映射驱动器

我正在创建一个WPF应用程序,除其他外应检查是否存在多个映射驱动器.代码很简单:

DriveInfo[] systemDrives = DriveInfo.GetDrives();
foreach (DriveInfo i in systemDrives)
{
     if ((i.Name.Contains("V")) && (i.IsReady))
     {
          result = true;
          break;
     }

 }
Run Code Online (Sandbox Code Playgroud)

映射的驱动器将映射到所有用户.上面的代码作为普通用户运行时工作正常,但是Visual Studio 2010以管理员身份运行,GetDrives方法仅返回固定驱动器和DVD驱动器,但不返回映射驱动器.如果可执行文件作为管理员运行,则会发生相同的情况 任何想法为什么会这样?

.net c# drives driveinfo windows-7-x64

4
推荐指数
1
解决办法
4272
查看次数

标签 统计

c# ×4

.net ×2

c++ ×1

directory ×1

disposable ×1

driveinfo ×1

drives ×1

mfc ×1

path ×1

vb.net ×1

visual-c++ ×1

windows ×1

windows-7-x64 ×1