安全地获取用户文件夹下的所有文件(包括在Documents等下)

时间:2017-09-05 10:43:36

标签: c# .net file

我想要一种安全的方法来将所有文件嵌套在用户文件夹下(名义上为fit<-glm(Petal.Width~Species,data=iris) summary(fit) dummy.coef(fit) > dummy.coef(fit) Full coefficients are (Intercept): 0.246 Species: setosa versicolor virginica 0.00 1.08 1.78 )。问题是大多数文件夹都有重新分析点,所以只是对文件夹的文件夹进行迭代/递归不会返回这些文件夹,因此也不会返回它们下面的文件。

简单但不需要的解决方案可以是

  1. 硬编码那些文件夹。 - 永远不是一个好主意。如果将来添加新的或删除一个新内容,该怎么办?
  2. 仅适用于UserProfile文件夹,检索任何文件夹 它下面的重新分析点指向。 - 不安全 - 可能会变成循环。
  3. 总而言之:是否有任何安全方式来获取用户文件夹下的所有文件,包括那些嵌套在重新分析点下的文件?

    因为(根据评论判断)看起来似乎并不清楚。我将明确说明:

    我不想获得重新分析点的目标。甚至不仅仅是在UserProfile的特定情况下。因为可能有一个指向UserProfile本身或包含它的文件夹。我想要一些正常(虽然不是'真正')文件夹的列表,就像'文档'(我假设它不会指向包含UserProfile的文件夹,因此不会成为循环文件夹)。或者其他一些 clean 解决方案。

1 个答案:

答案 0 :(得分:2)

这样一个简单的循环:

foreach (var dir in new DirectoryInfo(@"c:\users\smo").GetDirectories())
{
    .... 
}

应该返回c:\ users \ smo。

中的所有文件夹

作为一方,请注意,文件夹不能 重新分析点。重新分析点是与文件或文件夹相关联的一些可选二进制数据。该数据有一个类型(&#34; tag&#34;),表明如何处理这些额外信息。一种重新分析点是&#34;安装点&#34;,用于mounted folders功能。还有使用重新分析点的NTFS symbolic links。我想你在这里谈论的是符号链接。