草庐IT

NTFS-Search

全部标签

c++ - 在 `std::search` 上使用 `string::find`

我有一个关于使用std::search与string::find处理字符串的问题。我知道使用特定于类的成员函数算法通常比标准库算法更好,因为它可以基于类进行优化,但我想知道为了一致性,使用std是否合理::search使用迭代器而不是string::find使用索引。做那样的事情对我来说是一种罪过还是我应该坚持使用string::find?两者在性能或风格方面是否有任何巨大优势? 最佳答案 现在(2017年4月27日),至少GCCslibstdc++(默认情况下也被clang使用)实现了std::string::find线性搜索,因

windows - 使用 Windows/NTFS 追加到文件是原子的吗?

如果我从多个进程中写入一个简单的文本日志文件,它们可以覆盖/破坏彼此的条目吗?(基本上,这个问题IsfileappendatomicinUNIX?但适用于Windows/NTFS。) 最佳答案 您可以在本地文件上进行原子追加。使用FILE_APPEND_DATA访问权限打开文件(记录在WDK中)。当您省略FILE_WRITE_DATA访问时,所有写入都将忽略当前文件指针并在文件末尾完成。或者您可以使用FILE_WRITE_DATA访问权限,并在重叠结构中指定附加写入(Offset=FILE_WRITE_TO_END_OF_FILE和

windows - 如何获取 NTFS 文件的总大小(包括安全性和 ADS)?

我很难找到一种方法(如果有的话)来获取Windows(NTFS)文件的总文件大小。我想要得到的是文件的大小,包括备用数据流和安全信息;默认大小仅指主流(其中包含我们的应用程序使用的“真实”数据)。我知道我可以让它调用BackupRead()并查看我可以读取多少,但我需要在对此文件执行任何操作之前知道它。 最佳答案 是FindFirstStream你在哪儿找?或this? 关于windows-如何获取NTFS文件的总大小(包括安全性和ADS)?,我们在StackOverflow上找到一个类

windows - NTFS 提供了哪些可靠性保证?

我想知道NTFS对存储在其上的数据提供了什么样的可靠性保证?例如,假设我正在打开一个文件,追加到末尾,然后关闭它,并且在这个操作过程中随机断电。我能找到完全损坏的文件吗?我问这个问题是因为我刚遇到系统锁定,发现其中两个被附加到完全清零的文件。也就是说,大小合适,但完全由零字节组成。我认为这不应该发生在NTFS上,即使出现故障也是如此。 最佳答案 NTFS是一种事务性文件系统,因此它保证完整性-但仅针对元数据(MFT),而非(文件)内容。 关于windows-NTFS提供了哪些可靠性保证?

windows - 如果有人在 Windows (NTFS) 上运行 Ant 符号链接(symbolic link)任务会怎样?

我编写了ant构建脚本。我需要创建一个符号链接(symboliclink),我找到了symlink任务。根据手册,它只适用于Unix。如果有人在Windows平台上运行我的构建脚本会怎样?构建会失败吗?或者这个任务在windows平台上会被忽略?或者在NTFS驱动器的情况下,它甚至可以工作? 最佳答案 我运行的是Win7,我试过了。因为我已经安装了Mingw,所以它使用了ln。ln似乎只是复制一切。由于正常的Windows安装没有ln,因此会在那里失败。如果没有ln,会发生以下情况:C:\Users\Janus\Desktop>.\

Windows NTFS 和区分大小写

根据WikipediaNTFS允许两个大小写不同的相似名称(如Readme.txt与readme.txt),并且只有Windows文件API会阻止它。CurrentWindowsfilesystems,likeNTFS,arecase-sensitive;thatisareadme.txtandaReadme.txtcanexistinthesamedirectory.However,theAPIforfileaccessinWindowsapplicationsiscase-insensitive,whichmakesfilenamescase-insensitivefromthea

windows - 估计 NTFS 卷上的 USN 记录数

当第一次使用USN日志时,必须使用FSCTL_ENUM_USN_DATA控制代码枚举卷的整个USN记录集。这通常是一个漫长的操作。有没有办法在运行卷之前估计卷上的记录数,以便显示进度?我猜整个卷的USN数据是从MFT生成的,每个文件一条记录(大约)。因此,估计MFT中事件文件数量的方法或许可行。 最佳答案 您可以使用FSCTL_GET_NTFS_VOLUME_DATA获取MFT的字节长度。如果您将此与选定的代表性卷上的记录数进行比较,则可以估计单个MFT记录的平均长度,并使用它来计算特定卷上记录数的估计值。因为MFT包含(例如)每个

Windows Batch : Search all files in file, 如果行包含 "apple"或 "tomato"回显它

我正在尝试编写一个简单的批处理,它将遍历文件中的每一行,如果该行包含“apples”或“tomato”,则输出该行。我有这段代码可以找到一个字符串并输出它,但我无法在同一批处理中得到第二个。我还希望它在找到它们时回显这些行。@echoOFFfor/f"delims="%%Jin('findstr/ilc:"apple""test.txt"')do(echo%%J)它需要找到包含“apples”或“tomato”的行我可以使用我需要的两行轻松运行上面的代码,但我需要将这些行相互输出。例如我需要:appletomatotomatoappletomatoappleapple不是:applea

windows - 在 NTFS 卷上快速查找一组文件名,最好通过其 MFT

我正在编写一个工具,用于查找iTunes库中丢失的文件,适用于Mac和Windows。在Mac上,我可以使用神奇的“目录搜索”功能通过命名快速查找文件。但是,在Windows上,似乎没有用于按文件名搜索的操作系统API(或者有吗?)。经过一些谷歌搜索后,我了解到有一些工具(如TFind、Everything)可以直接读取NTFS目录并扫描它以按名称查找文件。我也想这样做,但不必从头开始(虽然我过去写过不少磁盘工具,但我一直没有精力去研究NTFS)。我想知道是否有现成的库,可能是一个.dll,这会给我这个搜索功能:传入一个文件名,取回它的路径。或者,Windows索引服务怎么样?至少当我

windows - NTFS 和 $Object_ID 上的唯一文件标识符

从我在网上找到的文章来看,NTFS上的文件似乎有两种形式的唯一标识符:使用WindowsAPIGetFileInformationByHandle(),我们可以访问结构BY_HANDLE_FILE_INFORMATION,其中包含卷序列号和低/高文件索引。http://msdn.microsoft.com/en-us/library/aa363788(VS.85).aspx$Object_ID-文章http://blogs.technet.com/b/askcore/archive/2010/08/25/ntfs-file-attributes.aspx状态:$OBJECT_ID–Th