我希望能够使用C#获取其中一个本地目录的大小。我试图避免以下(伪类代码),尽管在最坏的情况下我将不得不解决这个问题:intGetSize(Directory){intSize=0;foreach(FileinDirectory){FileInfofInfoofFile;Size+=fInfo.Size;}foreach(SubDirectoryinDirectory){Size+=GetSize(SubDirectory);}returnSize;}基本上,是否有可用的Walk()以便我可以遍历目录树?这将节省遍历每个子目录的递归。 最佳答案
我正在编写一个应用程序来管理用户对文件的访问。一个很长的故事的简短版本是我必须使用目录和文件权限来完成它。我们廉价的CEO没有文档管理系统......无论如何...除了用户可以查看目录中的哪些文件但实际上看不到文件内容的情况外,我一切正常。(文件中可能包含敏感的HR数据。)我试过FileSystemRights.ListDirectory,但这似乎(尽管有MS文档)也将ReadData设置为true。我关闭了ReadData(读取文件的能力),然后我突然无法再次访问该目录。两者似乎有关联。有什么想法可以设置哪些权限来实现这一点?我当前的代码是:SetSecurity(pth,usr,F
我正在使用visualstudio2013&FluentValidation5.6.2我看到在bin文件夹中构建后,它复制了所有特定于文化的FluentValidation.resources.dll这似乎在.nuspec文件中提到了>target="lib\NET35\de\FluentValidation.resources.dll"/>>>>>>>但我不需要在bin文件夹中放置这些,因为项目不支持任何特定于文化的消息。那么我如何告诉vs-build忽略这些特定于文化的dll? 最佳答案 我的解决方案是将此目标添加到.cspro
我使用以下代码片段成功地删除了文件的只读属性:在main.cs中FileSystemInfo[]sqlParentFileSystemInfo=dirInfo.GetFileSystemInfos();foreach(varchildFolderOrFileinsqlParentFileSystemInfo){RemoveReadOnlyFlag(childFolderOrFile);}privatestaticvoidRemoveReadOnlyFlag(FileSystemInfofileSystemInfo){fileSystemInfo.Attributes=FileAttri
我正在使用Request.ApplicationPath来了解我在其中运行的虚拟目录的名称。有没有更靠谱的方法? 最佳答案 Request.ApplicationPath是获取虚拟目录的非常可靠的方法,并且在您拥有HttpContext并且可以请求请求数据时始终有效。要进一步处理和提取部分路径,请查看VirtualPathUtility类。 关于c#-获取虚拟目录的名称?,我们在StackOverflow上找到一个类似的问题: https://stackove
是否可以使用StreamWriter创建目录? 最佳答案 没有。您实际上无法使用StreamWriter创建目录。使用Directory.CreateDirectory相反。如果您尝试从文件流中读取目录名称,然后根据该文本创建一个文件,您将需要这样的东西:FileStreamfs;//thisisthefilestreamfromsomewhere.makesuretodisposeitusing(StreamReaderr=newStreamReader(fs))Directory.CreateDirectory(r.ReadTo
我正在尝试从asp.net中的C#程序访问远程网络共享。我需要的是类似functiondownload(dirname){directory=(ThisisthepartIdon'tknowhowtodo)fordirindirectory:download(dir);forfileindirectory:copyfile(file);}我的问题是该目录需要用户名和密码才能访问,但我不知道如何提供它们。感谢您提供的任何帮助。 最佳答案 使用此类进行身份验证,而不仅仅是使用简单的文件操作://////Representsanetwor
我正在使用一个正在使用wix安装的程序。(不知道它是否相关,但它是一个C#程序)我想运行一个由msi文件安装的exe文件,但是我不知道安装位置,因为用户选择了安装路径。我想问一下如何从用户选择的位置运行exe文件的例子。即使这不是问题的一部分,我也很高兴看到一些从绝对位置运行exe文件的示例,因为我是wix的初学者并且是第一次做这一切。 最佳答案 如果您不需要UI,Isaiah4110的答案并不是最好的方法。通过Wix生成的MSI文件执行您正在安装的exe文件目标的最简单方法是使用自定义操作类型18(通过FileKey标识操作),这
我的目录路径为C:\Subdir1\Subdir2\Subdir3\filename.xml。在查看"Subdir3"之前,我需要先检查文件filename.xml是否存在于"Subdir2"的根目录中(向后一级)“。我如何使用Path.GetPathRoot(filename)轻松解析它?即.先看看这是不是真的:C:\Subdir1\Subdir2\filename.xml如果不是true,则文件默认为C:\Subdir1\SubDir2\Subdir3\filename.xml。 最佳答案 Directory.GetParent
一般信息我仍在学习C#的过程中。为了帮助自己,我正在尝试创建一个程序,它会自动将我所有的本地项目与我的FTP服务器上的文件夹同步。这样一来,无论我是在学校还是在家,我总是可以进行相同的项目。我知道像Dropbox这样的程序已经为我做了这件事,但我认为自己创建类似的东西会在这个过程中教会我很多东西。问题我实现目标的第一步是从我的FTP服务器下载所有文件、子目录和子文件。我已经设法使用以下代码从目录中下载所有文件。但是,我的代码只列出文件夹名称和主目录中的文件。子文件夹和子文件永远不会返回也不会下载。除此之外,服务器返回550错误,因为我正在尝试下载文件夹,就好像它们是文件一样。我已经处理