Mar*_*ryl 9 unix wine home-directory
我的Windows应用程序经常在使用Wine的*nix上使用.
由于它是一个以文件为中心的应用程序,它经常使用(并呈现给用户)Windows"文档"文件夹(使用时解析CSIDL_PERSONAL).不幸的是,在Wine下,指向假的Wine/Windows目录通常是空的和未使用的.我想将用户指向他的Unix主文件夹.
有没有可靠的方法来找出它在葡萄酒下的位置?
我希望我能读取HOME环境变量,但它不会导出(与大多数其他变量相反)到Windows环境.
目前我猜测家里正在使用Z:\home\%USERNAME%.但这对我来说并不健全.
如果没有办法找到主目录,是否至少有一种方法可以检测Wine根驱动器(Z:默认情况下),所以我不需要硬编码至少一个驱动器部分的路径?
由于缺乏更好的答案,我正在分享我目前的解决方法/黑客:
对于*nix平台,我控制部署(特别是OS X),我将HOME环境变量从启动脚本复制到另一个变量(比如说WINE_HOME).大多数环境变量(除了明显的例外HOME)都导出到Windows/Wine环境.所以我可以WINE_HOME从我的应用程序中读取,前置Z:\并将斜杠转换为反斜杠.
对于我没有控制部署的平台,我只能使用USERNAME变量来猜测主页Z:\home\%USERNAME%.这尤其不适用于OS X,其中家庭/users不是/home.
编辑:我发现了一个问题Get Wine路径的文件有点帮助.在*nix中,您可以使用winepath -w ~获取Z:\home\username.但是从Windows环境运行相同的功能无法解决问题~.你至少可以运行winepath -w /home/username来获得Z:\home\username找出葡萄酒根的驱动器(如果它不是默认的Z:\).