2017-02-26 35 views
1

我想知道如何使用Kivy來獲取Android上DCIM文件夾的路徑。Kivy - 在任何Android設備上獲取DCIM文件夾的路徑

PyJinus是不是一種選擇,因爲它目前沒有與Python 3.5

工作是我的嘗試,到目前爲止是:

DATA_FOLDER = os.getenv('EXTERNAL_STORAGE') if platform is 'android' else os.path.expanduser("~") 

但這隻會讓我的用戶區。有任何想法嗎?

回答

2

使用user_data_dir去,如果你打算使用SD卡作爲存儲爲您的應用程序(user_data_dir變量的使用創建一個文件夾):

from kivy.app import user_data_dir 
from os.path import dirname, join 
join(dirname(user_data_dir), 'DCIM') 

或者只是使用它的code直接:

DCIM = join('/sdcard', 'DCIM') 

我認爲/sdcard只是一個符號鏈接到真正的文件夾(無論它在哪裏),所以這個路徑的用法只是獲得訪問時的值,例如到/storage/sdcard0(符號鏈接),或者直接到真正的路徑。


除了這些解決方案,Android已經在環境中的路徑與您在注意到:

  • EXTERNAL_STORAGE(/storage/emulated/legacy)再次符號連接到SD卡
  • SECONDARY_STORAGE(/storage/extSdCard),即對外部如果你在那裏存儲照片
  • EMULATED_STORAGE_TARGET(/storage/emulated)基本上是你的SD卡的父文件夾,其中真正的SD卡(對我來說)在/storage/extSdCard/emulated/0
+0

謝謝,我不確定實際路徑是什麼,這非常有幫助 – Nick

+0

@Nick你總是可以用'adb shell'(它的行爲類似於bash)或[Root Browser](https ://play.google.com/store/apps/details ID = com.jrummy.root.browserfree)。即使沒有root權限,根瀏覽器也可以作爲簡單的文件閱讀器(取決於設備)工作,它會告訴你你的設備有什麼路徑。注意一個文件的'lrwxrwxrwx'簽名,它甚至有一個不同的圖標 - 這是一個符號鏈接。 – KeyWeeUsr