【问题标题】:how can i use wildcards in a web address to download a file where the filename periodically changes如何在网址中使用通配符来下载文件名定期更改的文件
【发布时间】:2013-01-30 09:33:14
【问题描述】:

我正在将文件从网络服务器下载到我的 IOS iPad 应用程序中。 我的问题是,现在硬编码的 url 地址可能会发生变化。 如何在我的 url 地址中使用通配符来补偿更改的地址

例如,这是当前的 url 地址 http://www.testserver/modules/public/sheets/HZ_TECAPET__black_gb_DE_201301.pdf

201301 发生了变化,那么如何使用通配符对 url 地址进行编码?

例如http://www.testserver/modules/public/sheets/HZ_TECAPET__black_gb_DE_??????.pdf

地址的第一部分保持不变,只是末尾的数字可能会发生变化

谢谢

【问题讨论】:

  • 你能预测一下地址会变成什么吗?有规律吗?
  • 如果数字是随机通配符不是个好主意。系统如何知道在 *.如果我们尝试所有组合并说数字的长度是 6,那么就有 8*9*9*9*9*9 不同的组合。
  • 实际上这个数字不是真正随机的,因为 201301 表示 2013 年 1 月,例如,该数字的下一个演变可能是 201304。这个数字根据文件创建的日期而变化,所以它有点像文件的版本控制。不幸的是,它在我的控制之外,因为它位于外部网站上。所以有什么想法我可以处理它吗?

标签: ios url webaddress


【解决方案1】:

那就有点难了。但是您可以在服务器端执行此操作。您可以编写一个将在服务器上运行的简单脚本 (BASH)。它将统计并列出目录中的所有文件并将结果保存为txt,您可以通过http://example.com/files.txt访问该文件

类似:

for file in "$sheets"/*
do
  echo "$file" >> files.txt
done

编辑:

啊哈,所以实际上有一个模式。然后您可以尝试下载每个可能的模式。然后检查 HTTP 状态码是 200(OK)还是 404(Not found)。

【讨论】:

  • 很抱歉,服务器不在我的控制之下,它是一个外部服务器
  • 我考虑过对每个模式进行下载测试,但我认为 nsurl loadrequest 会很长,并且会阻止 uiwebview 让用户感到沮丧。由于只有一个文件,名称我们不确定,难道没有可以使用的通配符吗?
  • 如果你能找到一个wget 实现在你的应用程序中使用。您可以在链接中执行以下操作:unix.stackexchange.com/questions/18906/…
  • 对不起,彼得,我不明白如何使用 wget 它超出了我目前的理解水平和编程能力
猜你喜欢
  • 2016-07-24
  • 2016-05-01
  • 1970-01-01
  • 2016-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-06
相关资源
最近更新 更多