草庐IT

预约上门回收

全部标签

c# - 如何使用 C# 从回收站恢复文件?

将文件移动到回收站和清空回收站都有详细记录,但如何以编程方式从回收站恢复文件? 最佳答案 在纯C#中似乎没有解决方案。您很可能不得不求助于P/Invoke。Thisarticle使用SHFileOperation在C++中提供解决方案API。 关于c#-如何使用C#从回收站恢复文件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/911391/

c# - 在 Mono 中触发垃圾回收

如何让Mono中的垃圾收集器做任何有用的事情?这篇文章的底部是一个生成两个大字符串的简单C#测试程序。生成第一个字符串后,取消引用变量,退出作用域,并手动触发垃圾收集器。尽管如此,使用的内存并没有减少,并且在构造第二个字符串期间程序因内存不足异常而爆炸。UnhandledException:OutOfMemoryException[ERROR]FATALUNHANDLEDEXCEPTION:System.OutOfMemoryException:Outofmemoryat(wrappermanaged-to-native)string:InternalAllocateStr(int)a

c# - 垃圾回收是如何收集自引用对象的?

如果某个对象未被任何其他对象引用,则它会被.NETCLR垃圾收集器收集。但是,如果objA引用objB,objB引用objC,而objC对objA的引用,垃圾收集器如何确定它们(作为一个整体)可以被收集? 最佳答案 CLR使用一种称为标记清除的技术。作为这项技术的一部分,每个对象都可以被认为是最初标记为收集的。然后,CLR遍历每个可访问对象,从您的全局变量(静态字段等)作为根开始,并清除每个可遍历对象上的标记。然后它会扫除剩余的标记对象。请记住,此“标记”是概念性的;实际上,对象很可能被添加到一个集合集中。在循环自引用对象的情况下,

c# - 我怎么知道一个目录是C#中的回收站?

给定一个文件夹,我如何判断它是一个回收站?我找到了一个answer适用于C++但不适用于C#。我的第一个想法是检查FileAttributes.System(在我的情况下这是一个可接受的近似值),但实际上该标志在回收文件夹中被清除。使用硬编码文件夹名称的原始解决方案是不可能的(我们毕竟是2009年)。 最佳答案 这里有个小问题。Windows回收站是一个虚拟文件夹,实际上并不存在。您看到的文件实际上并不在该文件夹中,它们是磁盘上已重命名为特殊名称的现有文件的表示,这会将它们从可见文件系统中“删除”,但不会从物理文件系统中删除。您可以

c# - 如何将文件移动到回收站

我需要在.net2003中将文件移动到回收站我从refrence添加了microsft.visualbasic.runtimedll,但我无法获取filesystem.deletedirectory,那该怎么办..任何人都可以帮助我吗? 最佳答案 我找到了这个,不知道它是否有效,但值得一试。usingMicrosoft.VisualBasic;stringpath=@"c:\myfile.txt";FileIO.FileSystem.DeleteDirectory(path,FileIO.UIOption.OnlyErrorDial

c# - 垃圾回收应该已经删除了对象,但 WeakReference.IsAlive 仍然返回 true

我有一个我希望通过的测试,但是垃圾收集器的行为并不像我想象的那样:[Test]publicvoidWeakReferenceTest2(){varobj=newobject();varwRef=newWeakReference(obj);wRef.IsAlive.Should().BeTrue();//passesGC.Collect();wRef.IsAlive.Should().BeTrue();//passesobj=null;GC.Collect();wRef.IsAlive.Should().BeFalse();//fails}在这个例子中,obj对象应该被GC,因此我希望W

c# - IIS 抛出 ThreadAbortException 并回收 worker,IIS 日志记录为 "IIS configuration change"的可能原因是什么?

当后台线程正在运行时,我开始在Appharbor上托管的.NetMVC网络应用程序中看到错误-经过仔分割析-我无法找出原因。首先,我注意到的异常是ThreadAbortException。然而,这实际上只是表示线程正在被杀死。在线程被杀死之前,您可以看到IIS创建了一个新的worker,并在同一台机器上调用了Application_Start。新应用程序启动并运行后,IIS会终止旧应用程序并按预期处理新请求。同时,IIS记录一条消息:ShutDownMessage:IISconfigurationchangeHostingEnvironmentinitiatedshutdownHost

c# - IIS应用程序池回收+ quartz 调度

我在IIS7.5上运行一个Web应用程序,它需要偶尔回收(否则内存使用会失控,我正在调查!)。当它回收时,它实际上不会运行,直到另一个请求进来,quartz不会运行。有没有办法让IIS在回收应用程序池后立即自动启动1个工作进程以确保quartz始终在线? 最佳答案 是的!http://weblogs.asp.net/scottgu/archive/2009/09/15/auto-start-asp-net-applications-vs-2010-and-net-4-0-series.aspx细节非常好,基本上你需要:编辑C:\Wi

c# - 回收调用Application_Start吗?

是否在IIS7中调用Application_Start进行回收?谢谢 最佳答案 不,当应用程序实际由IIS加载时,它会在回收后的第一个请求上调用。 关于c#-回收调用Application_Start吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12027471/

c# - 发送文件到回收站,大文件永久删除

好的,在.net中有两种方法可以将文件发送到回收站,使用Microsoft.VisualBasic.FileIO.FileSystem.DeleteFile或使用SHFileOperation。两者都很好,但如果文件无法放入回收站,它们将永久删除文件。如果文件太大或者只是不删除它,它是否有可能抛出异常或返回bool值?(不要默认确认对话框)我得到的一种方法是获取该卷允许的最大回收站大小,然后减去已用大小并检查文件是否将发送到RB或永久删除,但如果删除许多文件并再次检查可能会变坏又一次。还有什么我可以尝试的吗? 最佳答案 这道题并没有