Tag: fileinfo

如何使用Directory.EnumerateFiles,不包括隐藏文件和系统文件

我正在枚举目录中的所有文件,以便稍后处理它们。 我想排除隐藏和系统文件。 这是我到目前为止: IEnumerable<IGrouping> files; files = Directory.EnumerateFiles(sourcePath, “*”, SearchOption.AllDirectories) .Where(f => (new FileInfo(f).Attributes & FileAttributes.Hidden & FileAttributes.System) == 0) .GroupBy(Path.GetDirectoryName); 但是,如果我查看结果,我仍然会隐藏并包含系统文件: foreach (var folder in files) { foreach (var file in folder) { // value for file here still shows hidden/system file paths } } 我发现这个问题与杰罗姆有类似的例子,但我甚至无法编译。 我究竟做错了什么?

应用程序设置+ DirectoryInfo / FileInfo

我还是C#的新手…我正在构建一个WPF应用程序,我正在尝试应用一些用户应用程序设置。 插入标准的App Settings(int,double,string等)很容易。 我甚至插入了类似WindowState的东西。 我想将DirectoryInfo和/或FileInfo作为可保存的设置而不是字符串。 选定类型:System.IO.File给出错误消息“不支持抽象类型”。 这是有道理的,因为如何将抽象类型实现为设置。 选定类型:System.IO.FileInfo给出错误消息“类型’System.IO.FileInfo’未定义。” DirectoryInfo / FileInfo无法设置为应用程序设置吗? 可能吗? 值得的时间? 如何确定哪些可用作设置,哪些不可用? 我对用户设置的体验是有限的,我正在努力扩展我的知识,这让我很难过。 编辑:我试图发布一些截图,但显然我太新了。 我正在使用Visual Studio,Application Settings。 进一步说明: http://msdn.microsoft.com/en-us/library/a65txexh.a​​spx 应用程序设置可以存储为XML可序列化的任何数据类型,或者具有实现ToString / FromString的TypeConverter。 最常见的类型是String,Integer和Boolean,但您也可以将值存储为Color,Object或连接字符串。 DirectoryInfo di = new DirectoryInfo(@”C:\”); di.ToString(); 我错过了什么,因为它有ToString()…

获取上次修改或创建文件的用户名

是否可以获取刚刚将文件粘贴到文件夹中的用户的名称? 简要概述我要做的事情:我的应用程序每隔10分钟就会在一个文件夹上查看新文件。 如果找到任何新文件,它将通过FTP将该文件上传到指定位置。 我想知道谁将此文件放入该文件夹。 请注意,这可能与创建文件的人不同。 谢谢Nishant

在C#中缓存FileInfo属性

从FileInfo.Name属性的MSDN文档中,我看到该属性的数据在第一次被调用时被缓存,并且随后将仅使用Refresh方法进行更新。 我有以下问题,我在文档中找不到或不太清楚: 是否同时缓存了所有属性的数据? 是在创建FileInfo时调用Refresh方法,还是仅在第一次调用属性时调用? 如果我调用了一个属性,例如Name属性,并且它被称为Refresh ,则会首次调用另一个属性(例如DirectoryName属性)使其再次调用Refresh ,或者仅由访问的第一个属性调用它在整个class级(见问题#1 )? 我可以通过手动调用Refresh预缓存所有属性吗? (假设它没有在构造对象时预先缓存) 是否手动调用Refresh会导致预先缓存的属性(例如CreationTime )也被刷新?

FileInfo.Extension是否返回最后的*。*模式或其他内容?

我很好奇以下是什么行为: FileInfo info = new FileInfo(“C:/testfile.txt.gz”); string ext = info.Extension; 这会返回“.txt.gz”还是“.gz”? 更多扩展的行为是什么,例如“.txt.gz.zip”或类似的东西? 编辑: 要清楚,我已经测试了这个。 我想要一个属性的解释。

不使用System.IO.FileInfo获取文件大小?

是否可以在不使用System.IO.FileInfo情况下在C#中获取文件的大小 ? 我知道你可以分别使用Path.GetFileName(yourFilePath)和Path.GetExtension(yourFilePath)来获取Name和Extension等其他内容,但显然不是文件大小? 有没有其他方法可以在不使用System.IO.FileInfo情况下获取文件大小 ? 唯一的原因是,如果我是正确的,FileInfo会抓取比我真正需要的更多的信息,因此如果我需要的唯一东西是文件的大小,那么收集所有这些FileInfo需要更长的时间。 有更快的方法吗?

c#替换文件中的字符串

替换HTML文件内容的一部分时,String.Replace似乎无法正常工作。 例如,String.Replace用blah blah blah html>替换 blah blah blah html> – 注意第二个HTML结束标记未正确关闭,因此在页面呈现时显示用户的浏览器。 任何人都知道为什么它没有按预期工作? StreamReader sr = fi.OpenText; String fileContents = sr.ReadToEnd(); sr.close(); fileContents = fileContents.Replace(“”, “”); fileContents = fileContents.Replace(“”,”blah blah blah “); StreamWriter sw = new StreamWriter(fi.OpenWrite()); sw.WriteLine(contents); sw.close();

从NTFS-MFT参考编号获取文件信息

在我的C#应用​​程序中,我已经有办法检查文件系统,但我想利用从主文件表(MFT)读取,因为它更快。 我理解1)它是一个专有规范,因此如有更改,恕不另行通知; 2)只有在应用程序在管理权限下运行时才能访问它。 我设法通过此代码读取主文件表。 从MFT查询中,我得到一个文件名和一个所谓的文件引用号。 我找不到的是如何转换到.NET FileInfo对象,甚至转换到Windows API文件句柄,以便我可以获得有关文件/文件夹的更多信息,例如:文件大小,完整路径,日期邮票等

DirectoryInfo,FileInfo和很长的路径

我尝试使用非常长的路径使用DirectoryInfo,FileInfo。 我尝试使用\\?\ c:\ long path(我使用fileInfo和DirectoryInfo获取非法的文件) 我尝试使用file:// c:/ long path(我得到uri不支持) 我可以在路径或其他地方使用〜。 我读过这篇文章,但我想用另一种调用API的方式。 是其他解决方案吗? 微软有一篇文章可供使用\\? 在文件路径链接文本中 问题是我如何使用非常长的路径,DirectoryInfo和FileInfo的路径谁更长的256 char

C# – 添加,编辑和删除文件标签

我想在文件系统中添加和检索文件的标签。 您可以将Stackoverflow问题标记为相关主题,您可以在Windows文件系统中标记文件: 以下方法不允许我访问文件的标记,而只能访问其他文件属性。 string file = @”C:\Users\me\Desktop\MyFile.doc”; FileInfo oFileInfo = new FileInfo(file); MessageBox.Show(oFileInfo.FullName); 有没有想过如何使用System.IO的简单API访问标签?