尝试按照here和here概述的示例来确保我将结果报告的目录始终存在于给定用户。
import urllib2
def main():
# omitted all the connection stuff...
query = "INSERT INTO metadb (name, type , year ) values ( %s, %s, %d)"
params = (escape_string("Valentine's day"), "movie", 2010)
cursor.execute(query, params)
def escape_string(str):
return urllib2.quote(str).replace("%","%%")
if __name__ == "__main__":
main()
其中sampleFolder在Eclipse调试器中显示为 “C:\ Users \ CurrentUser \ workspace \ Automation_Framework // Reports // output // TestCasesHtmlReports //”
并从变量定义中填充
new File(sampleFolder).mkdir();
然而,当我运行脚本时,文件夹结构没有被创建,任何想法我做错了什么?我是否需要以管理员身份运行Eclipse?
答案 0 :(得分:0)
您需要进行两项更改:
改变1:
您输入的斜杠不正确。我不确定'//'是如何被解析的。在Windows上,“\”被解析为“\”,因为第一个反斜杠用作转义字符。
您可以按照以下标准方式撰写文件路径。 File.separator
是与平台相关的默认名称 - 分隔符字符串。对于Windows,它是'\',对于unix它是'/'
public static String sampleFolder = System.getProperty("user.dir") + File.separator + "Reports" + File.separator + "output" + File.separator+ "TestCasesHtmlReports";
有关此thread中的Java分隔符的信息。
改变2:
您需要使用
File.mkdirs
代替File.mkdir
问题在于您使用的API。 File.mkdir Javadoc读取
public boolean mkdir()
创建此抽象路径名命名的目录。
返回:
当且仅当目录已创建时才为true;否则是假的
File.mkdirs Javadoc读取
public boolean mkdirs()
创建此抽象路径名所指定的目录,包括任何必要但不存在的父目录。请注意,如果此操作失败,则可能已成功创建了一些必要的父目录。
返回:
当且仅当创建目录时才显示true,以及所有必需的父目录;否则是假的