Tag: 文件系统

为Windows编写用户模式文件系统?

是否可以在纯用户模式下为Windows编写文件系统,或者更具体地说是在托管代码中? 我在考虑与GMAILFS非常相似的东西。 排除它在幕后做的事情(GMAIL,亚马逊等),主要目标是提供驱动器号并支持所有基本文件操作,甚至可能添加我自己的结构来存储元数据等。

在同一台计算机上的.net应用程序之间传输大数据

我有两个在同一台机器上运行的.net应用程序。 第一个应用是’引擎’。 它构建图像 – 图像的大小约为4M。 第二个应用程序是“查看器”。 它显示了“引擎”发送的图像。 引擎每10-15秒发送一次图像。 我的问题是将图像从引擎传递给观看者的麻烦方法是什么。 目前,我正在使用FileSystem。 引擎将映像写入文件系统文件夹,并使用FileSystemWatcher将查看器获取此文件。 那方法好吗? 这可靠吗?

是否可以读取文件?

我正在开发一个应用程序,它检查由单独的程序(不是由我编写)对文件所做的更改。 如果检测到更改,则会打开文件,读取最后一行,然后关闭文件。 我正在使用以下代码来确保我的程序不会尝试锁定文件,但只在读取模式下打开它: FileStream fs = new FileStream( _scannerFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); StreamReader sr = new StreamReader(fs); var str = sr.ReadToEnd(); sr.Close(); fs.Close(); 不幸的是,尽管如此,每当我的程序尝试读取文件时,我仍然会收到以下错误: System.IO.IOException was unhandled Message=”The process cannot access the file ‘D:\\LSDATA\\IdText.txt’ because it is being used by another process.” Source=”mscorlib” StackTrace: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess […]

如何执行完整的递归目录和文件扫描?

这是我的代码: private static void TreeScan(string sDir) { foreach (string d in Directory.GetDirectories(sDir)) { foreach (string f in Directory.GetFiles(d)) { //Save file f } } TreeScan(d, client); } 问题是它没有获得sDir (起始目录)的文件,它只获取子文件夹中的文件夹和文件。 如何让它从sDir获取文件呢?

等待系统删除文件

删除文件后刷新文件列表时遇到问题。 当我命令删除文件时,抛出了exception,因为刷新方法试图访问应该删除的文件。 经过一番思考和调试后,我得出结论,问题在于系统需要一些时间来删除文件。 我这样解决它: //Deleting file System.Threading.Thread.Sleep(2000); //Refreshing list 它工作得很好。 我的问题是 是否有更优雅的方式等待系统删除文件然后继续代码…?

目录修改监控

我正在构建一个C#应用程序,它将监视指定的目录以进行更改和添加,并将信息存储在数据库中。 我想避免检查每个单独的文件进行修改,但我不确定我是否完全可以信任文件访问时间。 在目录中获取最近修改过的文件的最佳方法是什么? 它只会在用户询问时检查修改,它不会是一个持续运行的服务。

以递归方式列出给定路径下的所有文件和文件夹?

可能重复: 如何递归列出C#中目录中的所有文件? 我想列出给定文件夹(路径)的文件和文件夹的“子路径” 假设我有文件夹C:\ files \ folder1 \ subfolder1 \ file.txt 如果我给函数c:\ files \ folder1 \ 我将获得subfolder1子文件夹1 \ file.txt

为什么Path.Combine会使用相对路径生成此结果?

令我惊讶的是,此代码不会产生预期的结果: var basePath = @”\\server\BaseFolder”; var relativePath = @”\My\Relative\Folder”; var combinedPath = Path.Combine(basePath, relativePath); 结果是\My\Relative\Folder而不是预期的\\server\BaseFolder\My\Relative\Folder 。 为什么是这样? 将相对路径组合在一起的最佳方法是什么?这些路径可能有也可能没有斜线? 编辑:我知道我可以在relativePath上进行字符串操作来检测并删除起始斜杠。 有没有一种更安全的方法(我认为Path.Combine应该是安全的方式)来解释反斜杠和前沿?

如何显示凭据才能打开文件?

如何指定用户名和密码以便我的程序打开文件进行阅读? 需要访问该文件的程序是从一个对该文件所在文件夹没有读访问权限的帐户运行的。程序是用C#和.NET 2编写的,在XP下运行,文件在Windows Server 2003机器上。

计算Windows文件夹大小的最快方法是什么?

我需要计算数百个文件夹的大小,有些将是10MB,有些可能是10GB,我需要一种使用C#获取每个文件夹大小的超快速方法。 我的最终结果有望成为: Folder1 10.5GB Folder2 230MB Folder3 1.2GB …