标签: ntfs

似乎没有安装MacFUSE

安装MacFUSE并打开系统首选项 - > MacFuse后,它看起来与Mac Lion不兼容,并说:

似乎没有安装MacFUSE

任何解决方案?

macos ntfs macfuse osx-lion

8
推荐指数
1
解决办法
2万
查看次数

Windows NTFS 和区分大小写

根据维基百科, NTFS 允许使用不同大小写的两个相似名称(如 Readme.txt 与 readme.txt),并且只能由 windows 文件 API 阻止。

当前的 Windows 文件系统,如 NTFS,区分大小写;即 readme.txt 和 Readme.txt 可以存在于同一目录中。但是,Windows 应用程序中用于文件访问的 API 不区分大小写,这使得从应用程序的角度来看文件名不区分大小写。因此,应用程序只能访问文件名只是大小写不同的文件之一,如果提供的文件名不明确,某些命令可能会失败

来自 Linux,我问自己这两个文件存在的可能性是什么,并且一个人只能访问其中一个文件,这使其成为安全的理想问题。“Windows API”是什么意思。还有其他方法可以访问那些重复的文件吗?可以直接使用磁盘驱动程序(格式化驱动程序)访问文件系统吗?

windows filesystems ntfs

8
推荐指数
2
解决办法
7920
查看次数

File.Delete()是否在.NET下是原子的

目标操作系统:Win2003

正如其他关于文件操作原子性的SO问题所述,Win32根本不是为事务设计的.我仍然想知道文件删除是否可以是非原子的.毕竟,它要么被删除,要么被删除.或者文件是否可以保留在NTFS文件系统上的任何其他中间状态,这是因系统崩溃或其他原因导致的?

.net ntfs file atomic delete-file

7
推荐指数
2
解决办法
1080
查看次数

以编程方式获取Windows 2003中文件夹的groups-users-permissions特殊权限列表

我使用Window 2003服务器,我需要以编程方式使用C#获取有关安全性文件夹的信息.

我想创建一个检查权限的工具.我需要获取文件夹的组,用户,权限和特殊权限,

C:\ Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys

编辑:

以下是GetSecurityDescriptorSddlForm方法的示例代码.

public static string GetObjectPermission(string fullFolderName)
{
    FileSecurity fileSecure = File.GetAccessControl(fullFolderName);
    StringBuilder acer = new StringBuilder();
    fileSecure.GetSecurityDescriptorSddlForm(AccessControlSections.All);

    foreach (FileSystemAccessRule ace in fileSecure.GetAccessRules(true, true, typeof(NTAccount)))
    {
        acer.Append(ace.FileSystemRights + ":" + ' ' + ace.IdentityReference.Value + "\n");
    }
    return acer.ToString();
}
Run Code Online (Sandbox Code Playgroud)

此示例代码将显示哪些NTAccount可以修改或读取该文件夹,例如此函数.

我怎样才能获得组和特殊权限?

任何示例代码,建议?

c# security permissions ntfs

7
推荐指数
1
解决办法
4006
查看次数

如何仅检测卷上已删除,已更改和已创建的文件?

我需要知道是否有一种简单的方法只能检测在NTFS卷上删除,修改或创建的文件.

我在C++中编写了一个异地备份程序.在第一次备份之后,我检查每个文件的存档位以查看是否进行了任何更改,并仅备份已更改的文件.此外,它从VSS快照备份以防止文件锁定.

这似乎在大多数文件系统上都能正常工作,但是对于一些有大量文件和目录的程序,这个过程需要很长时间,而且备份通常需要一天以上才能完成备份.

我尝试使用更改日志轻松检测在NTFS卷上所做的更改,但更改日志将显示大量记录,其中大多数与创建和销毁的小型临时文件有关.另外,我可以使用文件名,文件引用号和父文件引用号,但是我无法获得完整的文件路径.父文件引用号以某种方式应该为您提供父目录路径.

编辑:这需要每天运行,所以在每次扫描开始时,它应该只记录自上次扫描以来发生的变化.或者至少,应该有一种方式来说明由于某某时间和日期的变化.

c++ windows backup ntfs

7
推荐指数
2
解决办法
9580
查看次数

在Delphi中实现Change Journal(第2步)

继续我之前的问题,我能够使用这个delphi单元使用这个EnumMFTEntries()函数实现疯狂的FAST驱动器扫描,但是我无法完成以下任务:

任务1:查询change journal以获取新修改的文​​件(更改,重命名,删除等...)

在阅读了该函数以及 StCroixSkipper的USN Journal Explorer(在C#中)后,我修改了这个破坏的例程.EnumMFTEntries()

由于某种原因,报告的文件名始终为#0

function EnumUsnEntries(ARootHandle : Cardinal; AMFTEnumBuff : Pointer; EnumCallBack : TMFTEnumCallback) : Boolean;
var
   P         : Pointer;
   UsnEnum   : Pointer;
   BytesRet  : Cardinal;

   PUSN           : PUSNRecord;
   ReadUSN        : TReadUSNJournalData;
   PReadUSN       : PReadUSNJournalData;
   UsnJournalData : TUSNJournalData;
   BUF_SIZE       : Integer;
begin
     Result            := False;
     if (ARootHandle = INVALID_HANDLE_VALUE) OR (AMFTEnumBuff = nil) then
        Exit;

     QueryUSNJournal(ARootHandle, UsnJournalData);
     with ReadUSN do
     begin …
Run Code Online (Sandbox Code Playgroud)

delphi ntfs delphi-xe2 ntfs-mft

7
推荐指数
1
解决办法
909
查看次数

SecurityIdentifier.Translate(typeof(NTaccount))窃听?

在进行从SID到NTAccount的转换时,我使用以下代码:

DirectorySecurity folder_sec = Directory.GetAccessControl("c:\\test", AccessControlSections.All);
AuthorizationRuleCollection rules = folder_sec.GetAccessRules(true, true, typeof(SecurityIdentifier));

foreach (FileSystemAccessRule rule in rules)
{
    SecurityIdentifier sid = new SecurityIdentifier(rule.IdentityReference.Value);
    IdentityReference name = sid.Translate(typeof(NTAccount));

    string output = name + " | " + sid.tostring();
}
Run Code Online (Sandbox Code Playgroud)

是的我意识到你可以NTAccountfolder_sec.GetAccessRules方法中获得一个来自但我发现SecurityIdentifier.Translate正在使用相同的子程序并且发生相同的错误.在一天结束时,ACL只是SID数组.

如果您有两个具有完全相同名称但位于两个单独域(受信任,而不是子域)的活动目录对象(组,用户等),则该translate方法返回错误的NTAccount.它最终在执行代码的机器所在的域中返回具有相同名称的NTAccount.NTAccount从其他域中获取与您的域中的另一个对象共享相同名称的s返回正常.

假设您在domain_frank中的计算机上有一个目录,这是ACL:

  • domain_frank\IT团队
  • domain_bob\IT团队
  • domain_frank \戴夫
  • domain_bob \特德

如果你运行它,虽然上面的代码output看起来像:

domain_frank\IT Team | S-1-5-21-4000000000-4000000000-2000000000-28480
domain_frank\IT Team | S-1-5-21-1000000000-8000000000-3000000000-81912
domain_frank\Dave | S-1-5-21-4000000000-4000000000-2000000000-86875
domain_bob\Ted |  S-1-5-21-1000000000-8000000000-3000000000-96521
Run Code Online (Sandbox Code Playgroud)

假设名为Dave的对象不在domain_bob中,并且名为Ted的对象不在domain_frank中.但是如果查看SID,您可以清楚地看到域部分完全不同,因此您至少在SID中知道ACL中的正确对象.与查找有关的事情正在打破.

我的结果是我必须编写自己的算法来查看SID并在SID所属的域上查找活动目录.非常非常缓慢,并且总是疼痛.

这是一个已知的错误,是否有一个令人满意的解决方案?

.net c# acl ntfs security-identifier

7
推荐指数
0
解决办法
2731
查看次数

流浪汉使用不同的主机

我想使用Vagrant但不会污染我正在使用n + VirtualBox机器的机器.

我在网上搜索但一无所获.我真正想要的是在我的笔记本电脑上工作并在vagrant up那里调用,但它应该在我的网络上安装了VirtualBox的另一台例如Linux计算机上启动客户机.

这可能是在这个时候,因为它与aws提供者没有太大的不同,它与EC2完全相同.

如果它使用NTFS而不是使用rsync 的aws-provider也会很好.

感谢您提前的答案.丹尼尔

virtualbox ntfs vagrant

7
推荐指数
1
解决办法
2067
查看次数

在NTFS上打开许多小文件太慢了

我正在编写一个应该处理许多小文件的程序,比如数千甚至数百万.我一直在测试500k文件的那一部分,第一步就是迭代一个目录,里面有大约45k目录(包括子目录的子目录等)和500k小文件.遍历所有目录和文件,包括获取文件大小和计算总大小大约需要6秒.现在,如果我尝试在遍历时打开每个文件并立即关闭它,它看起来永远不会停止.事实上,它需要太长时间(小时......).自从我在Windows上执行此操作后,我尝试使用CreateFileW,_wfopen和_wopen打开文件.我没有在文件上读或写任何东西,尽管在最后的实现中我只需要阅读.但是,我没有看到任何尝试都有明显的改善.

我想知道是否有一种更有效的方法来打开具有任何可用功能的文件,无论是C,C++还是Windows API,或者唯一更有效的方式是读取MFT并直接读取磁盘块,我我想避免?

更新:我正在处理的应用程序是使用版本控制进行备份快照.因此,它还具有增量备份.500k文件的测试是在一个巨大的源代码库上完成的,以便进行版本控制,就像scm一样.因此,所有文件都不在一个目录中.还有大约45k目录(如上所述).

因此,建议的压缩文件解决方案没有帮助,因为当备份完成时,就是访问所有文件的时候.因此,我认为没有任何好处,甚至会产生一些性能成本.

c++ windows performance ntfs directory-traversal

7
推荐指数
1
解决办法
3538
查看次数

为什么WriteFile调用ReadFile,我该如何避免它?

当在文件的现有部分(有时/总是?)中顺序覆盖(例如,8192字节对齐和大小的块)时,会WriteFile导致从磁盘读取文件,从而完全破坏性能.我不太明白为什么会发生这种情况以及如何避免这种情况.

使用Process Monitor我收到以下信息:

Event.Class: File System
Event.Operator: ReadFile
Event.Offset: 1 875 288 653 824
Event.Length: 4 096
Event.I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O
Event.Priority: Normal 

0   FLTMGR.SYS  FltDecodeParameters + 0x1ab1    0xfffff8016e7f4621  C:\WINDOWS\System32\drivers\FLTMGR.SYS
1   FLTMGR.SYS  FltDecodeParameters + 0x166c    0xfffff8016e7f41dc  C:\WINDOWS\System32\drivers\FLTMGR.SYS
2   FLTMGR.SYS  FltDecodeParameters + 0x1093    0xfffff8016e7f3c03  C:\WINDOWS\System32\drivers\FLTMGR.SYS
3   FLTMGR.SYS  FltDecodeParameters + 0xe8e 0xfffff8016e7f39fe  C:\WINDOWS\System32\drivers\FLTMGR.SYS
4   ntoskrnl.exe    IoPageRead + 0x258  0xfffff8015b8ba598  C:\WINDOWS\system32\ntoskrnl.exe
5   ntoskrnl.exe    IoPageRead + 0x4d4  0xfffff8015b8ba814  C:\WINDOWS\system32\ntoskrnl.exe
6   ntoskrnl.exe    IoGetBaseFileSystemDeviceObject + 0x7c8 0xfffff8015b8b8ae8  C:\WINDOWS\system32\ntoskrnl.exe …
Run Code Online (Sandbox Code Playgroud)

windows winapi ntfs

7
推荐指数
1
解决办法
716
查看次数