Tag: 文件系统

清空目录的最佳方法是什么?

有没有办法删除指定目录的所有文件和子目录而不迭代它们? 非优雅的解决方案: public static void EmptyDirectory(string path) { if (Directory.Exists(path)) { // Delete all files foreach (var file in Directory.GetFiles(path)) { File.Delete(file); } // Delete all folders foreach (var directory in Directory.GetDirectories(path)) { Directory.Delete(directory, true); } } }

如何检查是否可以在特定文件夹中创建文件

我需要知道我是否可以在特定文件夹中创建文件,但是有太多东西需要检查,例如权限,重复文件等。我正在寻找类似File.CanCreate(@”C:\myfolder\myfile.aaa” ),但还没有找到这样的方法。 我唯一想到的是尝试创建一个虚拟文件并检查exception,但这是一个影响性能的无法解决方案。 你知道更好的解决方案吗?

网络文件夹浏览器服务

在网上有一些类似的问题 – 甚至在这里有一些问题,但即使这些问题似乎很高兴,我找不到真正做到我需要的东西。 我正在尝试将远程目录浏览function添加到基于Web的管理控制面板(基于Intranet)。 此时我不需要担心安全性,因为这是在其他地方处理的。 为此,我使用的Web服务接受服务器名称和共享/文件夹路径作为参数。 我只需要它返回此路径的子目录,如果有的话。 听起来不是那么难,是吗? 嗯,这是(至少对我来说!) 我需要帮助的唯一一点是实际生成服务器和提供的路径的目录列表。 所有的帮助表示赞赏,但请不要只是链接到一个网站,因为我可能已经看到它但未能找到一个有效的解决方案; 其中大多数甚至似乎都没有试图做标题所暗示的。 一些解释也会有所帮助! 干杯

文件系统钩子.doc打开C#

我正在编写一个应用程序,需要通知每个打开的doc文件,我尝试过使用FileSystemWatcher但现在看来NotifyFilter 。 由于开销很大, LastAccess被禁用。 我想我可以使用LastWrite ,但这意味着我需要尝试从打开文档时该单词创建的临时文件中找出原始文件名。 我还需要密切关注4个目录,所以理想情况下我不想对它们进行轮询。 我知道我可以写一个WordAddin ,这是一个选项,但这意味着另一个部署管理,另一个代码库和另一个产品,以支持许多用户总是看到插件作为减速源的问题。 是否有一种简单的方法可以告诉Windows Vista我想知道有关已打开的doc或docx? 我想知道的一件事是,我是否可以将与.doc相关联的默认程序更改为我的,这是作为服务运行,然后将详细信息传递给我,以便打开? 这看起来有点像黑客,所以我想知道是否有一种简单的方法来挂钩这些类型的文件打开? UPDATE 从这里与各种人交谈,最可靠的方式(和大多数资源有效)似乎是替换.doc的现有文件关联。 &.docx到我自己的程序,然后使用Microsoft.Office.Interop.Word启动word,然后挂钩到DocumentOpen事件。 这样我就可以获得正在打开的文件名以及任何未来的文档。

在c#中查找已编译类的源文件

我希望在一组编译的.net程序集中找到特定类的相关源文件。 例如 MyAsm.Namespace.Foo -> C:\Source\foo.cs MyAsm.Namespace.Bar -> C:\Source\Code\MoreCode\Common.cs MyAsm.Namespace2.Bar -> C:\Source\Code\MoreCode\Common.cs … 我有使用标准System.Reflectionfunction的程序集reflection/提取我感兴趣的类型信息。 我现在需要找到该类的原始.cs源文件。 虽然我有一个powershell解决方案作为一种解决方法,但它的速度令人无法接受。 我希望在5秒内完成整个过程。 目前,reflection提取部分花费不到1秒,“文件关联”需要几分钟。 我不认为在4秒内扫描几个MB是不合理的。 不幸的是,有一些警告,可以防止捷径。 我不知道文件的名称,所以每次运行我都需要做一个dir / s *.cs来枚举所有潜在的源文件。 类名称并不总是与源文件匹配,它可以提示可能的位置,但不能保证其工作。 在某些情况下,在同一文件中定义了多个类。 有~20k .cs文件/ 63MB源。 我需要~10k类/他们的文件之间的关联。 我不想逐步构建一个带有文件名/类的DB,因为文件内容会发生变化,我将无法维护这个DB等(尽管我可能不得不沿着这条路走下去)否则失败)。 操作系统将运行,不会启用Windows搜索/索引,所以也没有喜悦。 我尝试过的: 使用findstr.exe – 太慢了 创建.net应用程序,将所有文件加载到内存中。 – 找到* .cs /加载所有文件的速度太慢,一旦文件在内存中就会快速扫描。 从所有较小的文件创建一个大型源文件,加载它,扫描等 – 再次,太慢了。 一旦加载,需要几分钟来构建文件。 阅读PDB文件 – 我正在调查PDB2XML.exe,虽然它确实输出文件名,并且运行速度很快,但我无法看到如何将类与文件名相关联。 那么,有没有人有PDB2XML的替代建议,魔术或一些经验?

WinForms TreeView递归目录列表?

我想制作一个显示系统上所有文件夹的树视图,并且只显示音乐文件,例如.mp3 .aiff .wav等。 我记得读过我需要使用递归函数或类似的东西。

如何让用户删除文件?

我需要知道哪个用户从c#代码中删除了文件系统中的文件。 只有一个想法是使用审计,但它似乎很慢……

在Windows中处理系统文件夹事件

我正在编写一些C#代码,我需要检测应用程序运行时是否已打开Windows文件系统上的特定文件夹。 有什么办法吗? WinAPI可能吗?

如何使用文件系统驱动程序隐藏C#中的目录?

我想开发一个可以隐藏文件夹的程序。 不是隐藏属性,而是真正的隐藏,以便没有应用程序可以找到它。 我认为我需要创建一个文件系统驱动程序。 我怎么能在C#中做到这一点?

.net框架是否提供了使用文件系统的异步方法?

.net框架是否具有允许使用文件系统的async内置库/程序集(例如File.ReadAllBytes , File.WriteAllBytes )? 或者我是否必须使用StreamReader和StreamWriter的async方法编写自己的库? 像这样的东西会很不错: var bytes = await File.ReadAllBytes(“my-file.whatever”);