Tag: directoryinfo

C#代码,用于设置远程共享以从其父目录inheritance权限

我在Windows域中有两台计算机,称为客户端和服务器。 服务器有一个共享目录,可以从客户端计算机访问。 我想在客户端上运行C#应用程序,该应用程序设置此共享的权限以inheritance服务器上共享的父目录的权限。 我该怎么做呢? 我已尝试过以下几行代码,但我认为它没有正确的效果: DirectoryInfo shareDirectoryInfo = new DirectoryInfo(“\\server\share”); DirectorySecurity directorySecurity = shareDirectoryInfo.GetAccessControl(); directorySecurity.SetAccessRuleProtection(false, false); InheritanceFlags iFlags = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit; FileSystemAccessRule accessRule = new FileSystemAccessRule(“Everyone”, FileSystemRights.FullControl, iFlags, PropagationFlags.InheritOnly, AccessControlType.Allow); bool modified; directorySecurity.ModifyAccessRule(AccessControlModification.Set, accessRule, out modified); if (modified) { Directory.SetAccessControl(name, directorySecurity); } 我想我不明白为什么我必须为目录创建一个FileSystemAccessRule – 我怎么能说从父进行inheritance呢? 谢谢你的帮助! 马丁

第二个路径片段不能是驱动器或UNC名称 – 创建子目录错误

我在这段代码的第三行有一个例外“第二个路径片段不能是驱动器或UNC名称” DirectoryInfo labdi = new DirectoryInfo(Back.mainfolderpath + @”\news\l”); DirectoryInfo tld = new DirectoryInfo(labdi.FullName + @”\” + NorA.sn.labl[i]); tld = labdi.CreateSubdirectory(labdi.FullName + @”\” + NorA.sn.labl[i] + @”\”); 网上没有任何有用的方法。 谢谢。:!

C#如何在使用DirectoryInfo时解决限制?

当我递归一些文件夹和文件时,我遇到这个错误: 指定的路径,文件名或两者都太长。 完全限定的文件名必须少于260个字符,目录名必须少于248个字符。 这是我的function private void ProcessDirectory(DirectoryInfo di) { try { DirectoryInfo[] diArr = di.GetDirectories(); foreach (DirectoryInfo directoryInfo in diArr) { if (StopCheck) return; ProcessDirectory(directoryInfo); } ProcessFile(di); } catch (Exception e) { listBoxError.Items.Add(e.Message); } TextBoxCurrentFolder.Text = di.ToString(); } 我不能让目录名更短,因为我不允许这样……我怎么能解决这个问题呢? 补充:这是另一个function: private void ProcessFile(DirectoryInfo di) { try { FileInfo[] fileInfo = di.GetFiles(); if (fileInfo.LongLength != 0) […]

应用程序设置+ 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()…

C#访问路径’C:\ Documents and Settings \’被拒绝

我正在使用一个简单的DirectoryInfo来获取C盘上根目录下的所有目录。 但是,我在管理员下运行,我得到路径访问被拒绝的错误,下面是我正在运行的代码。 如何解决路径访问问题? DirectoryInfo Dinfo = new DirectoryInfo(@”C:\”); DirectoryInfo[] directories = Dinfo.GetDirectories(“*.*”, SearchOption.AllDirectories);

在Windows资源管理器中打开文件夹结构时,DirectoryInfo.Delete(True)不会删除

假设我有一个文件夹结构,如: C:\ MYTEMP – MySubFolder 如果我尝试删除此使用: Dim path As String = “C:\MyTemp” Dim di As System.IO.DirectoryInfo di = System.IO.Directory.CreateDirectory(path) di.CreateSubdirectory(“MySubFolder”) di.Delete(True) 这工作正常, 除非我打开Windows资源管理器 ,我正在查看’MySubFolder’目录。 然后我得到一个IOException 该目录不为空。 – 单击“确定”将取消此操作,然后不删除文件夹结构。 有关如何正确执行此操作(即删除)的任何想法,即使在Windows资源管理器中打开文件夹结构时运行此代码也是如此?

搜索目录中的所有文件时显示进度

我之前问过快速获取特定路径中的所有文件和目录的问题,以便尽可能快地找到文件。 我正在使用该解决方案,以便找到与正则表达式匹配的文件名。 我希望显示一个进度条,因为有一些非常大而慢的硬盘驱动器,它仍然需要大约1分钟才能执行。 我在另一个链接上发布的解决方案无法让我知道为了让我显示进度条,还有多少文件丢失了。 我正在考虑做的一个解决方案是尝试获取我正在计划遍历的目录的大小 。 例如,当我右键单击文件夹C:\Users我可以估计该目录的大小。 如果我能够知道大小,那么我将能够通过添加我找到的每个文件的大小来显示进度。 换句话说,progress =(文件大小的当前总和)/目录大小 出于某种原因,我无法有效地获得该目录的大小。 有关堆栈溢出的一些问题使用以下方法: 但请注意,我得到一个例外,无法枚举文件。 我很高兴在我的驱动器上尝试这种方法。 在那张照片上,我试图计算文件数量以显示进度。 我可能无法使用该方法有效地获取文件数量 。 当人们询问how to get the number of files on a directory我只是尝试堆栈溢出的一些答案,并且人们询问how the get the size fa directory 。

C# – 如何使用DirectorySecurity.SetOwner()? 我遇到了麻烦

我在搞清楚SetOwner()方法时遇到了麻烦。 在我的例子中,我通过代码在Active Directory中创建了一个用户,然后,我为用户创建了一个文件夹。 一切正常,但我不能将新创建的用户设置为文件夹的所有者。 我不是C#guru,所以我很难理解DirectorySecurity.SetOwner()方法。 有人可以帮帮我吗? 这是创建文件夹的代码,设置我想要的权限,但我还需要将用户设置为所有者。 string pathIntern = @”\\11fil01\brukar\” + user.UserName; System.IO.DirectoryInfo diIntern = new System.IO.DirectoryInfo(pathIntern); diIntern.Create(); DirectorySecurity dsecIntern = diIntern.GetAccessControl(); FileSystemAccessRule rule = new FileSystemAccessRule(user.UserName, FileSystemRights.FullControl, InheritanceFlags.None | nheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow); dsecIntern.SetAccessRule(rule); diIntern.SetAccessControl(dsecIntern); //dsecIntern.SetOwner(heeeeelp);

c#为什么当路径为“C:”时,directoryInfo将我带到应用程序文件夹?

为什么当我给出路径“c:”时,它直接将我改为应用程序文件夹? static void Main(string[] args) { DirectoryInfo dir = new DirectoryInfo(“c:”); Console.WriteLine(dir.FullName); Console.ReadLine(); } 输出如下: c:\ users … \ documents \ visual studio 2010 \ projects \ consoleApplication9 \ bin \ debug 但是当我给@”c:\”它会转到磁盘c:尽管”d:”和@”d:\”占用磁盘d: . 所以我需要一种让”c:”进入磁盘c: 提前致谢!

DirectoryInfo,FileInfo和很长的路径

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