Articles of 文件系统

在Windows中查找文件夹的实际大小

在我的家庭桌面这是一台Windows机器,我右键单击属性下的C:\ Windows文件夹,它显示: 如果我使用Microsoft sysinternals提供的du工具 du C:\Windows 这产生 Files: 77060 Directories: 21838 Size: 31,070,596,369 bytes Size on disk: 31,151,837,184 bytes 如果我以pipe理员身份运行相同的命令 Files: 77894 Directories: 22220 Size: 32,223,507,961 bytes Size on disk: 32,297,160,704 bytes 以pipe理员身份运行Powershell ISE我从这个SO答案运行下面的PowerShell代码片段 "{0:N2}" -f ((Get-ChildItem -path C:\InsertPathHere -recurse | Measure-Object -property length -sum ).sum /1MB) + " MB" 哪个输出 22,486.11 MB 以pipe理员身份运行的命令提示符回答下面的C#代码返回: 35,163,662,628 […]

通过inode打开文件

是否有可能打开一个文件知道它的inode? ls -i /tmp/test/test.txt 529965 /tmp/test/test.txt 我可以提供path,inode(529965以上),我期待得到一个文件描述符。

在Linux中的特定块上打开文件

出于debugging目的,我想打开一个特定的预定义块上的文件。 例如,如果我怀疑一个特定的块已经损坏,我想写入并从中读取,而我宁愿在用户模式下执行该操作,而挂载分区。 有没有办法告诉Linux,“嘿!在块4579上打开这个新文件,如果它是免费的”。 是的,我可以直接编辑块设备,但如果安装了驱动器,则可能会损坏文件系统。 通用的答案是受欢迎的,但即使是ext文件系统的家庭的答案是足够好的。

networking文件系统预取? (或者:互联网文件系统是否优化以减less往返)

以下面的代码snippit: f = open("/mnt/remoteserver/bar/foo.bin", O_RDONNLY); while (true) { byteseread = read(f, buffer, 1000); if (bytesread > 0) ProcessBytes(buffer, bytesread); else break; } 如果上面的例子,我们说远程文件,foo.bin是1MB,以前从来没有被客户访问过。 所以,大约有1000个调用来“读取”来获取整个文件。 此外,让我们说客户端上安装目录的服务器是通过互联网,而不是本地。 客户端带宽快,但延迟时间长。 是否每个“读取”调用都会返回到服务器以请求更多的数据? 或者客户机/服务器协议认识到,远程文件上的后续读取通常是连续的,因此,在应用程序实际进行read()调用之前,后续的块被压下。 因此,随后的读取调用会更快地返回,因为数据是预取和caching的。 做现代networking文件系统协议(NFS,SMB / Samba,任何其他?)做任何这样的优化。 有networking文件系统协议调整为互联网有这样的优化? 我正在调查一个可能涉及通过互联网实施networking文件系统的个人项目。 令我感到惊讶的是,如果文件I / O的往返次数可以减less,性能可能会更快。

在Windows中识别文件types

Linux操作系统通过查看标题开始处的幻数来识别文件。 窗户如何做到这一点? 它是否也有某种魔术数字机制,还是只依赖文件扩展名?

如何查看是否对文件或文件夹select“包含可inheritance的权限”?

我在C#编写一个小实用程序,以确保指定的文件夹及其所有内容具有适当的访问权限(我想授予Authenticated Users组完全访问权限)。 下面的代码似乎正常工作更新顶级文件夹的ACL(访问控制列表): SecurityIdentifier allUsers = new SecurityIdentifier(WellKnownSidType.AuthenticatedUserSid, null); InheritanceFlags iFlags = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit; FileSystemAccessRule newRule = new FileSystemAccessRule(allUsers, FileSystemRights.FullControl, iFlags, PropagationFlags.None, AccessControlType.Allow); DirectoryInfo info = new DirectoryInfo(folderPath); DirectorySecurity security = info.GetAccessControl(); security.AddAccessRule(newRule); info.SetAccessControl(security); 但是,我注意到,这个新的访问规则不会传播到在其安全属性中未选中“包含可inheritance权限…”选项的子文件夹。 这只是有道理的。 所以,我想要做的是打开任何这样的子文件夹的安全权限inheritance。 我的挖掘发现了ObjectSecurity.SetAccessRuleProtection方法应该是我需要的一半。 但是,在已经inheritance父类的DACL的对象上盲目地使用上述方法似乎是草率的。 因此,我想确定哪些对象的权限inheritanceclosures,但我似乎无法find相应的方法或返回此信息的属性。 有一个吗? 我在这里错过了什么?

如何检查一个文件是否存在c

我有核心文件生成与附加到其名称的PID或有时只有名称的核心。 我需要检查一个文件是否以名称core.pid或core存在。 我已经尝试使用stat() ,我使用pathstring作为/tmp/core* ,但失败。 你能不能让我知道如何解决这个问题。谢谢你的时间。

如何检查块是否存在于一个稀疏文件中(用于简单的写时拷贝)?

如何获得稀疏的块大小,并检查数据是否存在于稀疏文件中的reiserfs / ext3在给定的偏移量? 我想用它来实现使用FUSE的简单写时复制块设备。 或者我应该在一个单独的文件中保留一个位图?

打开文件后,访问时间不会更改

我正在使用stat来获取文件的存取时间(当前date是2013年10月23日) [juan@JN-LNXSVR-02 labfiles]$ stat nursery File: `nursery' Size: 837 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 139539 Links: 1 Access: (0644/-rw-r–r–) Uid: ( 500/ juan) Gid: ( 500/ juan) Access: 2013-10-22 18:03:20.703888346 -0400 Modify: 2013-10-21 16:57:07.801165793 -0400 然后我编辑文件并closures它,不做任何修改,并再次提交stat juan@JN-LNXSVR-02 labfiles]$ vi nursery [juan@JN-LNXSVR-02 labfiles]$ stat nursery File: `nursery' Size: 837 Blocks: 8 […]

总线错误打开和mmap的文件

我想创build一个文件并将其映射到内存中。 我认为我的代码将工作,但是当我运行它时,我得到一个“总线错误”。 我search谷歌,但我不知道如何解决这个问题。 这是我的代码: #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <errno.h> #include <sys/types.h> #include <unistd.h> #include <sys/mman.h> #include <string.h> int main(void) { int file_fd,page_size; char buffer[10]="perfect"; char *map; file_fd=open("/tmp/test.txt",O_RDWR | O_CREAT | O_TRUNC ,(mode_t)0600); if(file_fd == -1) { perror("open"); return 2; } page_size = getpagesize(); map = mmap(0,page_size,PROT_READ | PROT_WRITE,MAP_SHARED,file_fd,page_size); if(map == MAP_FAILED) { […]