【问题标题】:Looping through folders循环浏览文件夹
【发布时间】:2019-11-28 10:20:41
【问题描述】:

如何在 if 语句中遍历文件夹。我想告诉机器人搜索文件路径 + row.item(0) + 一个或两个空格 + row.item(1).tostring?有些文件夹有双空格,有些文件夹有单空格。非常感谢您的帮助。

最好的问候

【问题讨论】:

  • 这只是一个编程逻辑问题。为什么不使用正则表达式来匹配 LHS 和 RHS ? row.item(i) 中有什么?
  • Row.item(0) 是客户编号,另一个是客户名称。我曾尝试使用 \s{1,} 但它不起作用。你有什么建议吗?

标签: automation uipath


【解决方案1】:

要递归获取文件夹,您可以使用以下方法

GetDirectories(String, String, SearchOption)

如果您使用以下参数,您应该能够找到您的文件夹,顶部方法将返回一个空格的文件夹,下面的一个将返回两个空格的文件夹。

Directory.GetDirectories( "C:\", filepath + row.item(0) + " " + row.item(1).tostring, SearchOption.AllDirectories)

Directory.GetDirectories( "C:\", filepath + row.item(0) + " " + row.item(1).tostring, SearchOption.AllDirectories)

要将其组合成可在分配中使用的单行代码,您可以使用以下代码。

Directory.GetDirectories("C:\",filepath + row.item(0) + " " + row.item(1).tostring,SearchOption.AllDirectories).AddRange(Directory.GetDirectories("C:\",filepath + row.item(0) + " " + row.item(1).tostring,SearchOption.AllDirectories))

这将提取包含一个空格的目录列表,然后将第二个目录列表添加到其中,其中包含两个空格。这将为您提供一个包含与任一搜索字符串匹配的文件夹的列表

【讨论】:

    【解决方案2】:

    你为什么不做类似的事情:

    filepath + row.item(0).Trim() + " " + row.item(1).tostring.Trim()
    

    重命名filepath/* 下的所有子文件夹,并在应用上述解决方案之前用一个空格更正它们的名称。

    另一种方法是,使用try-catch 机制。如果您仅确定这 2 个条件 - try 带有单个空格 - 如果抛出错误,请尝试在 catch 块中使用双空格。

    【讨论】:

    • 我试过那个,但没有用。我通过使用双 if 语句解决了这个问题,并且在此之前存在单个路径。感谢您的宝贵时间。
    猜你喜欢
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    • 2020-09-05
    • 2012-05-09
    相关资源
    最近更新 更多