所以我做這個android應用程序,需要從用戶提供的CSV文件讀取數據。Android文件存儲選項/約定
CSV文件在桌面計算機上更易於編輯,所以我在應用程序中沒有編輯器,它是「只讀」的。我假設手機的SD卡上有一個文件。
繼Data Storage documentation之後,我設法編寫了一個啞文件,從外部存儲讀取文件,相對於getExternalStorageDirectory返回的文件夾位置進行硬編碼。所以目前我有:
private static final String CSV_FILE = "/Android/foo/bar.csv"
...
File f = new File(Environment.getExternalStorageDirectory(), CSV_FILE);
然後我將我的手機連接到PC,請在「/ Android」的文件夾中的「富」文件夾(存在我的手機上),複製「吧。 csv「文件,一切都很好。
現在顯然,如果我想分發應用程序,這是不可接受的。所以,我有幾個問題:
自然的解決方案是softcode文件的位置,並在其他任何系統中我將依靠內置的「文件管理器」或什麼的,讓用戶瀏覽正確的文件。 令人驚訝的是我找不到這樣的控件,而且好像有很多第三方文件瀏覽器應用程序。這是否意味着要求用戶選擇手機上的文件不是「習慣」?我應該寫我自己的'文件瀏覽器'嗎?
是否有關於如何命名我的「foo」目錄的約定?我見過創建dir的應用程序,它的名字看起來像一個java包,我是否用內部存儲器誤認它?
還有一個getExternalStoragePublicDirectory方法,它採用了「目錄式」的常數。在我的情況,它將使‘意義上的’假設該文件是在DIRECTORY_DOWNLOADS?(或DIRECTORY_DOWNLOADS的一些子文件夾?)
我應該操心拉姆達用戶將如何把一個文件在手機上?要我堵在我的電腦上的電話很簡單,但真正輕鬆地在所有機器人?
很抱歉,如果所有的這聽起來微不足道,只是想在做一些愚蠢的事情之前清除我的想法
謝謝。
謝謝!對於「希臘語」來說,「lambda用戶」可能是法語表達的可怕翻譯(我們稱「un utilisateur lambda」爲「您的普通用戶」。現在「您的普通用戶」並不代表什麼,因爲沒有人「平均水平」,但我想到的是具有電話,個人電腦和電纜的普通用戶,但並不一定是將所有這些電腦連接起來的技術。 – phtrivier
儘管如此,我仍然沒有找到「好」的解決方案。 ,因爲設置一個webapp真的看起來像一個矯枉過正的出於好奇,將嵌入一個編輯器在我的add,並存儲在sqli db的一切更有意義? – phtrivier
@phtrivier:「將嵌入編輯器在我的添加,並存儲在sqli數據庫的一切更有意義?「 - 除非數據幾乎不可能進入設備,我至少有一個應用程序內編輯器作爲一個選項。畢竟,有些人有平板電腦或帶有物理鍵盤或其他物品的設備,這些設備使數據輸入變得更容易。「爲t設置webapp帽子真的看起來像一個矯枉過正「 - 並創建一個桌面應用程序不是?如果您計劃通過電子表格輸入CSV,請考慮Google文檔集成或與Web等效的內容。 – CommonsWare