'Access to the path 'F:\系统容量信息' is denied.'

ken76

会员
已加入
2018年11月15日
留言内容
7
编程经验
5-10
I get this error message 'Access to the path 'F:\系统容量信息' is denied.' when I run the code below this text.
How can I ignore '系统容量信息'?

C#:
字符串[] originalFiles = Directory.GetFiles(sourceFolder,"*", 搜索Option.AllDirectories);

Array.ForEach(originalFiles, (originalFileLocation) =>
              {
                  FileInfo originalFile = new FileInfo(originalFileLocation);
                  FileInfo destFile = new FileInfo(originalFileLocation.Replace(sourceFolder, destiniationFolder));                   
                  
                  if (destFile.Exists)
                  {
                      if (originalFile.Length > destFile.Length)
                      {
                          originalFile.CopyTo(destFile.FullName, true);
                      }
                      else
                      {
                          Directory.CreateDirectory(destFile.DirectoryName);
                          originalFile.CopyTo(destFile.FullName, false);
                      }
                  });
 
由主持人最后编辑:

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,499
地点
弗吉尼亚州切萨皮克
编程经验
10+
You obviously know about if statements. 什么's to prevent you from simply adding another condition to check for that name and skipping it?

Or if you are a believer in LINQ, then you can use the Where() extension method to filter away that specific name before passing on to ForEach().
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,923
地点
英国
编程经验
10+
请不要这样粗体显示您的文字。相反,单击带有下拉箭头的三个点,然后单击代码,然后将代码粘贴到弹出框中并发布。像这样粗体显示文本令人讨厌。
 

ken76

会员
已加入
2018年11月15日
留言内容
7
编程经验
5-10
我也曾尝试像这样使用LINQ,但此行确实有效。

字符串[] originalFiles = Directory.GetFiles(sourceFolder,"*",SearchOption.AllDirectories)。其中(f => !f.Contains("系统容量信息").ToString())
有人能帮我吗?
 
Last edited:

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,499
地点
弗吉尼亚州切萨皮克
编程经验
10+
f.Contains() returns a boolean, but calling ToString() on that boolean will convert it to a string. The Where() extension method expects to get back a boolean.
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,923
地点
英国
编程经验
10+

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,501
地点
悉尼,澳大利亚
编程经验
10+
该文件夹将永远无法访问。如果使用从顶层搜索每个子文件夹的方法,那么您将始终遇到该问题。您可以在较低级别使用此类方法,例如文档文件夹,但不是从驱动器根文件夹。如果您希望能够搜索整个驱动​​器,则需要编写自己的递归方法,该方法将捕获无法访问的文件夹中的异常并继续执行。周围应该有负载。出于相同的原因,我自己多次编写了这样的代码。
 
最佳 底部