Articles of ntfs

是否有可能知道哪个应用程序创build了一个文件?

Windows(或一般的NTFS)是否存储在任何地方创build文件的应用程序的名称? 或者是有一个确定哪个应用程序负责创build一个文件(几秒钟后),它是最初创build后的强大方式? 我们正在制定一个文件pipe理系统。 它使用FileSystemWatcher监视FS的新文件 – 这一部分很简单 – 但我希望能够跟踪哪个应用程序/版本创build了它检测到的新文件。 我知道我可以查找属于正在运行的进程的打开的文件句柄,但想必这种方法只会在应用程序创build文件后才能工作,然后保持locking,对吗? 有没有更好的办法?

估计NTFS卷上的USNlogging数

当首次使用USN日志时,必须使用FSCTL_ENUM_USN_DATA控制代码来枚举卷的整个USNlogging集。 这通常是一个漫长的操作。 有没有一种方法可以在运行之前估计卷上的logging数量,因此可以显示进度? 我猜测整个卷的USN数据是从MFT生成的,每个文件一个logging(大约)。 因此,估计MFT中活动文件数量的一种方法是可行的。

Windows NTFS和区分大小写

根据维基百科的说法,NTFS允许两个类似的名字,不同的大小写(如Readme.txt和readme.txt),只有windows文件API才能阻止。 当前的Windows文件系统,如NTFS,区分大小写; 这是一个readme.txt和一个Readme.txt可以存在于同一个目录下。 但是,Windows应用程序中用于文件访问的API不区分大小写,这使得文件名从应用程序的angular度来说不区分大小写。 因此,应用程序只能访问其中一个文件名不同的文件,如果提供的文件名不明确,某些命令可能会失败 从Linux发表我问自己有什么可能性,这两个文件存在,只能访问其中一个文件,使其成为一个理想的安全问题。 什么是“Windows API”的意思。 有另一种方式来访问这些重复的文件? 是否可以使用磁盘驱动程序(格式化驱动程序)直接访问文件系统?

NTFS连接点和符号链接有什么区别?

在高层次上, NTFS连接点和符号链接之间唯一明显的区别是连接只能是目录,而SymLinks也可以作为目标文件。 两者之间还有什么其他的区别? (注意,我已经看到了这个问题 ,我正在寻找的是有点不同 – 这个问题是寻找一个专业和清单,我正在寻找一组技术差异)

在文件中访问备用数据stream

在NTFS文件系统上,可以在单个文件中包含备用数据stream。 是否可以以完全pipe理的方式访问这些信息? 编辑:此外,我想从现有文件中的备用stream中读取。 这是如何实现的(如果不能使用托pipe代码,则使用PInvoke)? 这个问题是类似的,但是从2009年初,.Net的答案使用PInvoke写入文件,而不是从它读取。 从那时起,对于这个function的支持(对.net 4.0?),可以做到这一点,而不使用PInvoke?

在Python中创buildNTFS连接点

有没有办法在Python中创build一个NTFS交接点? 我知道我可以调用junction实用程序,但最好不要依赖外部工具。

在本地NTFS驱动器上查找回收站

我试图写一些简单的代码,将回收本地驱动器上回收站的目录。 看起来好像很简单 – 在Google上应该有一千个答案。 还没有find一个:( 我发现FAT和NTFS驱动器有不同的基本名称(RECYCLED和RECYCLER)。 我发现“回收站”是一个虚拟文件夹,它结合了机器上所有驱动器的回收站。 我没有find的是findC盘的回收站目录 – 即使在越南语(或任何其他非英语)的机器上。 (没有post,我可以find表明“RECYCLER”是否获得国际化) 任何人都可以指出我一个明确的答案? 谢谢 更新:意识到CSIDL_BITBUCKET和使用它的function。 从我读过的所有东西中,它指向一个虚拟目录,它是所有驱动器上该用户删除的所有文件的联合。 寻找物理回收站目录(在我的Vista上,它似乎是C:\ $ Recycle.Bin据我所知)

如何在NTFS上创build一个稀疏文件?

我正在testing一个稀疏文件。 但是我的testing代码不能正常工作。 HANDLE h = CreateFileW(L"D:\\sparse.test", GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_SPARSE_FILE, 0); DWORD d = GetFileAttributes(L"D:\\sparse.test"); // The function returns 32(FILE_ATTRIBUTE_ARCHIVE). // Where is FILE_ATTRIBUTE_SPARSE_FILE flag? // How do I make a sparse file. DWORD written; WriteFile(h, "aaa", 3, &written, 0); SetFilePointer(h, 2*1024*1024*1023, 0, FILE_BEGIN); SetEndOfFile(h); WriteFile(h, "bbb", 3, &written, 0);

NTFS中的文件名是以什么编码存储的?

我刚开始使用一些编程来处理WinXP系统上非英文名称的文件名。 我已经做了一些关于unicode的推荐阅读,我想我已经有了基本的想法,但是有些部分对我来说还不是很清楚。 具体来说,什么编码(UTF-8,UTF-16LE / BE)是存储在NTFS中的文件名 (不是内容,而是文件的实际名称)? 是否有可能打开任何文件使用fopen(),这需要一个字符*,或者我别无select,只能使用wfopen(),它使用wchar_t *,大概需要一个UTF-16string? 我尝试手动喂养一个UTF-8编码的stringfopen(),例如。 unsigned char filename[] = {0xEA, 0xB0, 0x80, 0x2E, 0x74, 0x78, 0x74, 0x0}; // 가.txt FILE* f = fopen((char*)filename, "wb+"); 但是这是作为'ê°€.txt'出来的。 我的印象(这可能是错误的),一个UTF8编码的string就足以打开Windows下的任何文件名,因为我似乎隐约记得一些Windows应用程序传递(char *),而不是(wchar_t *),并有没问题。 任何人都可以点亮这个?

在文件之外存储元数据:现代Windows上的任何标准方法?

我的C# 应用程序将文件从远程文档pipe理系统同步到文件系统。 文档pipe理系统具有与每个文件相关联的元数据(上次审计的date,保密性,作者…),但不存储在每个文件中。 这些文件可以是任何东西(bmp,xwd,pdf,未知的二进制文件) 我想使这些元数据在本地Windows文件系统上可见。 但是我不能在每个文件中存储元数据。 例如,更改文件的保密性不能修改文件的校验和。 什么是最好的方式来存储这个元数据? 我听说过NTFS 扩展文件属性 ,是否适用于我的场景? 这个关于设置扩展文件属性的问题有所有答案都在讨论修改文件本身,我必须避免这个问题。 如果没有标准的解决scheme,那么我会将元数据存储在本地的SQLite数据库中。 但我更喜欢使用标准的解决scheme,以便其他应用程序(资源pipe理器,图库应用程序等)可以显示/修改他们理解的属性(如“作者”)