我有一个脚本,打算由多名用户在多台计算机上运行,并且他们各自的主目录中都没有他们的Dropbox文件夹。我讨厌必须在脚本中硬编码路径。我宁愿以编程方式找出路径。
任何建议欢迎。
编辑:我不在脚本中使用Dropbox
API,该脚本只是读取用户之间共享的特定Dropbox文件夹中的文件。我唯一需要的是Dropbox文件夹的路径,因为我当然已经知道Dropbox文件结构内的相对路径。
编辑:如果重要,我正在使用Windows 7。
我在这里找到了答案。设置s
等于第二行~\AppData\Roaming\Dropbox\host.db
,然后使用base64对其进行解码将给出路径。
def _get_appdata_path():
import ctypes
from ctypes import wintypes, windll
CSIDL_APPDATA = 26
_SHGetFolderPath = windll.shell32.SHGetFolderPathW
_SHGetFolderPath.argtypes = [wintypes.HWND,
ctypes.c_int,
wintypes.HANDLE,
wintypes.DWORD,
wintypes.LPCWSTR]
path_buf = wintypes.create_unicode_buffer(wintypes.MAX_PATH)
result = _SHGetFolderPath(0, CSIDL_APPDATA, 0, 0, path_buf)
return path_buf.value
def dropbox_home():
from platform import system
import base64
import os.path
_system = system()
if _system in ('Windows', 'cli'):
host_db_path = os.path.join(_get_appdata_path(),
'Dropbox',
'host.db')
elif _system in ('Linux', 'Darwin'):
host_db_path = os.path.expanduser('~'
'/.dropbox'
'/host.db')
else:
raise RuntimeError('Unknown system={}'
.format(_system))
if not os.path.exists(host_db_path):
raise RuntimeError("Config path={} doesn't exists"
.format(host_db_path))
with open(host_db_path, 'r') as f:
data = f.read().split()
return base64.b64decode(data[1])
null 目前,我可以转到url并进行一些屏幕刮擦以尝试获得内容列表,但链接Dropbox博客条目中描述的解决方案的优点是不需要刮擦文件,因此它更加可靠和高效。
我是Android系统的新手。我得到了一个应用程序,在其中我列出了所有SD文件和文件夹,包括doc,pdf,xls,jpg等。 如何在Android中以编程方式获取我的SD卡中所有文件夹和文件的文件夹名和文件名? 我正在使用这段代码,但无法获得文件夹名称(根文件夹和子文件夹)。
我正在尝试使用Python 3.4在dropbox中上传文件。我可以成功地将文件上传到dropbox。但我需要知道如何读取Dropbox文件夹中的文件。例如:如果dropbox文件夹中有文本和csv文件,那么我需要使用Python dropbox API v2读取这些文件的内容?
问题内容: 我想确定我的Java程序正在以编程方式运行的主机的操作系统(例如:我希望能够基于我在Windows还是Unix平台上加载不同的属性)。做到100%可靠性的最安全方法是什么? 问题答案: 你可以使用: PS:你可能会发现此代码有用: 它所做的只是打印出Java实现提供的所有属性。通过它,你可以了解可以通过属性了解Java环境的内容。
问题内容: 类似于此问题,但适用于MySQL。 我如何以编程方式确定MySQL中的外键引用(假设InnoDB)?我几乎可以通过以下方式获得它们: …但是可惜,似乎包含某些信息的评论列被截断了,所以我不能依靠它。一定有其他方法… 我对C API调用,SQL语句或其他任何东西都感到满意-我只需要一贯工作的东西。 注意:我也考虑过解析“ SHOW CREATE TABLE MyTableName”语句的
问题内容: 如何以编程方式确定我的机器是x86,x64还是IA64? 问题答案: 在Windows系统上,您可以获得环境变量PROCESSOR_ARCHITECTURE。这是MSDN文章,解释了可以返回的值。