草庐IT

FileSystems

全部标签

.net - 如何捕获文件复制/移动事件的详细信息,例如源文件名

只是想写一个应用程序来跟踪磁盘中文件之间的关系。我们知道FileSystemWatcher可以在创建、重命名或删除文件时触发evetns。但是FileSystemWatcher不能告诉我们源文件的路径。例如,假设folder1中有一个文件F1,然后我们将F1复制到另一个名为的文件夹中folder2,新的文件名仍然是F1。在这种情况下,FileSystemWatcher可以告诉我们在folder2中创建了一个新文件。但是它不能告诉我们新的F1是从folder1中的F1复制而来的,而这个信息正是我们所需要的。有什么想法吗? 最佳答案 这

windows - 是否有适用于 Windows 的用户模式 ​​ext2 文件系统库?

我希望找到一个C/C++库,它可以从Windows应用程序中的ext格式化卷中读取大量文件。我不需要以传统方式安装此卷,我只需要对文件进行API访问即可。只读没问题。我的一个应用程序是唯一需要访问该卷的应用程序。简而言之,我更喜欢一个不需要安装驱动程序的库,而不是一个可安装的Windows文件系统。我能够检测到磁盘何时到达、卷位置等。对我来说最重要的是能够可靠地从卷中读取文件,而无需安装文件系统。我不需要写支持 最佳答案 ext2read项目能够读取ext2、ext3和ext4文件系统。它完全从用户空间实现这一点,不依赖于内核驱动程

c# - 计算目录大小

我正在尝试以一种划分负载的方式计算目录大小,以便用户可以看到计数进度。我认为这样做的合乎逻辑的方法是首先创建目录树,然后执行计算所有文件长度的操作。令我意想不到的是,大部分时间(磁盘I/O)来自于创建目录树,然后遍历FileInfo[]几乎立即发生,几乎没有磁盘I/O。我已经尝试过使用Directory.GetDirectories(),简单地创建目录名称的字符串树,并使用DirectoryInfo对象,这两种方法仍然与遍历每个目录中的文件的所有FileInfo.Length相比,占用了大量的I/O时间(当然是读取MFT)。我想没有办法显着减少I/O来生成树,我想我只是想知道为什么与遍

php - 用 php 标记图像

我想编写一个脚本来标记图像并将标记保存在FILE中,而不是在外部数据库中。我还需要通过php从文件中读取标签。我为什么要这样做?右键单击图像并选择属性,然后单击详细信息,然后单击标签,然后添加标签,这至少可以说是乏味的。我找不到任何在Windows中快速添加标签的快捷方式,所以我想编写自己的脚本来执行此操作。这可能吗?我不知道是不是,每当我在同一行中搜索图像和标签时,我都会得到html教程的图像标签或人们将标签保存在外部数据库中。我真的找不到任何好的资源,如果有人可以建议一些我可以看看,我将不胜感激。到目前为止我有什么?我可以列出硬盘上的所有图像并单击图像,然后会出现一个弹出窗口让我输

windows - 使用 Windows API 写入和读取可用磁盘空间

是否可以使用WindowsAPI写入磁盘上的空闲集群或从中读取数据?我找到碎片整理API:https://learn.microsoft.com/en-gb/windows/desktop/FileIO/defragmenting-filesFSCTL_GET_VOLUME_BITMAP可用于获取每个簇的分配状态,FSCTL_MOVE_FILE可用于移动簇。但是我找不到从空闲集群读取数据或向其写入数据的方法。更新:想到的解决方法之一是创建一个新的小文件,向其中写入一些数据,然后将其重新定位到所需位置并删除文件(数据将保留在已释放簇)。但这仍然没有解决阅读问题。我正在尝试做的是某种透明缓

windows - 如何有效地检索目录中的文件数?

有没有一种方法(在使用Delphi2010的Windows上)无需实际遍历所有文件即可获取目录中的文件数?我想在一些文件系统索引操作期间实现一个进度条。因此,我需要知道目录中有多少文件。获取目录中文件数的最快方法是什么? 最佳答案 如果您在Windows7或Server2008R2上运行,我建议从SysUtils中提取FindFirst和FindMatchingFile函数,并修改前者以使用FindFirstFileEx而不是FindFirstFile。然后,您可以将附加标志参数设置为2(在MSDN中定义为FIND_FIRST_EX

c# - File.Exists 为不存在的文件返回 true

我正在开发一个将文件保存在Path.GetDirectoryName(FilePath)中的应用程序,其中FilePath=Application.ExecutablePath包含一些有关许可的信息。如果我从VS运行该程序,它工作正常,但如果我制作安装程序并安装然后运行它,该程序认为该文件已经存在。我更改了我的程序以在消息框上显示我的FilePath以及File.Exists(FilePath)返回true还是false。所以我查看了那个路径,启用了显示隐藏文件和系统文件,F5几次但没有。该文件不存在,但File.Exists(FilePath)返回true。知道为什么会发生这种情况吗

c# - 如何快速创建内容为 "natural"的大型 (>1gb) 文本+二进制文件? (C#)

出于测试压缩的目的,我需要能够创建大文件,最好是文本、二进制和混合格式。文件的内容既不能完全随机也不能统一。全为零的二进制文件是不好的。具有完全随机数据的二进制文件也不好。对于文本,具有完全随机ASCII序列的文件并不好——文本文件应该具有模拟自然语言或源代码(XML、C#等)的模式和频率。伪真实文本。每个文件的大小并不重要,但对于文件集,我需要总大小为~8gb。我想将文件数量保持在可管理的水平,假设为o(10)。为了创建二进制文件,我可以新建一个大缓冲区并在循环中执行System.Random.NextBytes和FileStream.Write,如下所示:Int64bytesRem

windows - 无需锁定的优雅文件读取

白板概览下面的图片是1000x750px,~130kBJPEGs托管在ImageShack上。InternalGlobal附加信息我应该提一下,每个用户(客户端)将直接使用/Foo共享。由于业务的性质,用户永远不需要同时查看或处理彼此的文档,因此这种性质的冲突永远不会成为问题。访问需要对他们来说尽可能简单,这可能意味着将驱动器映射到他们各自的/Foo/username子目录。此外,除了我的应用程序(内部应用程序和服务器上的应用程序),没有人会直接使用FTP目录。可能的实现不幸的是,我似乎无法使用WinSCP等现成的工具,因为一些其他逻辑需要与流程密切相关。我想有两种简单的方法可以让我在

java - 在 IDE 中使用 Java 打开对话框无法在 Windows 10 PC 上看到网络驱动器,但在 IDE 之外可以看到它

为什么我无法在带有Java打开对话框的Windows10PC上看到网络驱动器。从IDE运行我的Java应用程序时,我注意到一个问题,打开对话框不显示我的NAS(安装在Z:drive上的NetGearReadyDuo)。然而,当我在同一台机器上使用相同的JVM在IDE之外运行应用程序时,一切正常。在这两种情况下,我都在Windows1010.0amd64上使用Java1.8.0_7225.72-b1564bit。我敢肯定我以前没有遇到过这个问题,但不知道它是什么时候开始发生的。如果它因为IDE而没有显示在IDE中,对我来说不是什么大问题,但我担心IDE可能无关紧要,潜在客户也会看到这种行