草庐IT

filesystems

全部标签

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可能无关紧要,潜在客户也会看到这种行

c# - Windows 文件系统?

我已经在托管C#中完成了一种存档格式的开发,它太灵活了,不能只是一个存档。我希望将它用作文件系统。它组织良好,速度非常快,同时具有低级和高级API功能。它支持即时加密和压缩、密码保护、WindowsExplorer特定的文件元数据(例如创建/修改/访问时间和属性)、2^63-1大小的HDD等。如果可以让Windows识别和使用我的文件系统,我会为了实现它而学习VisualC++。Windows是否支持自定义文件系统?(7是必须的,其他的是可选的。)如果是,我如何制作/实现它们?如果我必须使用某些第3方库,它必须是免费的。我不想使用CallbackFileSystem,因为它不是免费的。

Windows 和 ctime/st_ctime

Windows是否提供类似POSIXstat的东西?的st_ctime字段,它给出了最后一次元数据更改的时间戳?背景:我有一些数据文件,我想检查它们是否在特定时间戳后被修改过。检查修改后的时间戳(mtime)很容易,并且会处理“正常”修改,但如果用户复制旧版本的数据文件,则修改后的时间戳将显示它们更旧。在POSIX系统上,复制旧文件会导致ctime更新,即使mtime更旧。 最佳答案 据我所知,Windows确实提供了“上次更改”字段,但我还没有找到任何用于访问它的Win32API,因此您必须使用nativeAPI。具体来说:(我还

java - Windows 临时目录详细信息 (Java)

我正在编写一个需要通用临时文件夹的程序。我正在尝试查找有关WindowsTemp文件夹的详细信息。我知道有两条路-在AppData\Local\Temp\下的每个用户目录中这可能会根据Windows版本而改变?Temp\(C:\Windows\Temp)下的系统文件夹我想知道Windows对这些中的每一个到底做了什么。如果Windows从任一位置删除文件,它会在什么时候删除?我如何/应该如何使用这些目录进行编程?编辑:实际上我有一个更大的问题——因为我的程序间接运行了某个引擎,它使用了我在临时目录中创建的文件,我需要一个不使用空白字符的临时目录在路径中。Windows上的JavaSys

windows - (为什么)FSCTL_SET_OBJECT_ID 危险?

NTFS文件可以有对象ID。可以使用FSCTL_SET_OBJECT_ID设置这些ID.然而,msdnarticle说:Modifyinganobjectidentifiercanresultinthelossofdatafromportionsofafile,uptoandincludingentirevolumesofdata.但它没有更详细地说明。这怎么会导致数据丢失?它是在谈论文件系统中潜在的对象ID冲突,NTFS是否以某种方式依赖它们?侧节点:在找到该段落之前,我做了一些实验,并设置了一些新创建文件的对象ID,希望我的文件系统仍然完好无损。 最佳答