『壹』 android怎樣拿到file的路徑
Environment 常用方法:
* 方法:getDataDirectory()
解釋:返回 File ,獲取 Android
數據目錄。
* 方法:getDownloadCacheDirectory()
解釋:返回 File ,獲取 Android
下載/緩存內容目錄。
* 方法:getExternalStorageDirectory()
解釋:返回 File ,獲取外部存儲目錄即
SDCard
* 方法:(String type)
解釋:返回 File
,取一個高端的公用的外部存儲器目錄來擺放某些類型的文件
* 方法:getExternalStorageState()
解釋:返回 File
,獲取外部存儲設備的當前狀態
* 方法:getRootDirectory()
解釋:返回 File ,獲取 Android 的根目錄
file的getPath getAbsolutePath和getCanonicalPath的不同
File的這三個方法在api中都有說明,僅以程序為例說明。
package test;
import
java.io.File;
import java.io.IOException;
public class TestFilePath
{
public static void main(String[] args) {
// TODO Auto-generated
methodstub
System.out.println(System.getProperty("user.dir"));
try
{
System.out.println("-----默認相對路徑:取得路徑不同------");
File file1 =new
File("..\\src\\test1.txt");
System.out.println(file1.getPath());
System.out.println(file1.getAbsolutePath());
System.out.println(file1.getCanonicalPath());
System.out.println("-----默認相對路徑:取得路徑不同------");
File
file =new
File(".\\test1.txt");
System.out.println(file.getPath());
System.out.println(file.getAbsolutePath());
System.out.println(file.getCanonicalPath());
System.out.println("-----默認絕對路徑:取得路徑相同------");
File
file2 =new
File("D:\\workspace\\test\\test1.txt");
System.out.println(file2.getPath());
System.out.println(file2.getAbsolutePath());
System.out.println(file2.getCanonicalPath());
}
catch (IOException e) {
// TODOAuto-generated catch
block
e.printStackTrace();
}
}
}
程序執行結果如下:
F:\eclipseworkspace\testejb
-----默認相對路徑:取得路徑不同------
..\src\test1.txt
F:\eclipseworkspace\testejb\..\src\test1.txt
F:\eclipseworkspace\src\test1.txt
-----默認相對路徑:取得路徑不同------
.\test1.txt
F:\eclipseworkspace\testejb\.\test1.txt
F:\eclipseworkspace\testejb\test1.txt
-----默認絕對路徑:取得路徑相同------
D:\workspace\test\test1.txt
D:\workspace\test\test1.txt
D:\workspace\test\test1.txt
結論:
當輸入為絕對路徑時,返回的都是絕對路徑。
當輸入為相對路徑時:
getPath()返回的是File構造方法里的路徑,是什麼就是什麼,不增不減
getAbsolutePath()返回的其實是user.dir+getPath()的內容,從上面F:\eclipseworkspace\testejb、F:\eclipseworkspace\testejb\..\src\test1.txt、F:\eclipseworkspace\testejb\.\test1.txt可以得出。
getCanonicalPath()返回的就是標準的將符號完全解析的路徑
public String
getAbsolutePath()返回抽象路徑名的絕對路徑名字元串。
如果此抽象路徑名已經是絕對路徑名,則返回該路徑名字元串,這與 getPath()
方法一樣。如果此抽象路徑名是空的抽象路徑名,則返回當前用戶目錄的路徑名字元串,該目錄由系統屬性 user.dir
指定。否則,使用與系統有關的方式分析此路徑名。在 UNIX 系統上,通過根據當前用戶目錄分析某一相對路徑名,可使該路徑名成為絕對路徑名。在 Microsoft
Windows
系統上,通過由路徑名指定的當前驅動器目錄(如果有)來分析某一相對路徑名,可使該路徑名成為絕對路徑名;否則,可以根據當前用戶目錄來分析它。
返回:
絕對路徑名字元串,它與此抽象路徑名表示相同的文件或目錄的
拋出:
SecurityException
- 如果無法訪問所需的系統屬性值。
另請參見:
isAbsolute()
public String getCanonicalPath()
throws
IOException返回抽象路徑名的規范路徑名字元串。
規范路徑名是絕對路徑名,並且是惟一的。規范路徑名的准確定義與系統有關。如有必要,此方法首先將路徑名轉換成絕對路徑名,這與調用
getAbsolutePath() 方法的效果一樣,然後用與系統相關的方式將它映射到其惟一路徑名。這通常涉及到從路徑名中移除多餘的名稱(比如 "." 和
"..")、分析符號連接(對於 UNIX 平台),以及將驅動器名轉換成標准大小寫形式(對於 Microsoft Windows
平台)。
表示現有文件或目錄的每個路徑名都有一個惟一的規范形式。表示非存在文件或目錄的每個路徑名也有一個惟一的規范形式。非存在文件或目錄路徑名的規范形式可能不同於創建文件或目錄之後同一路徑名的規范形式。同樣,現有文件或目錄路徑名的規范形式可能不同於刪除文件或目錄之後同一路徑名的規范形式。
返回:
表示與此抽象路徑名相同的文件或目錄的規范路徑名字元串
拋出:
IOException
- 如果發生 I/O 錯誤(可能是因為構造規范路徑名需要進行文件系統查詢)
SecurityException -
如果無法訪問所需的系統屬性值,或者存在安全管理器,且其 SecurityManager.checkRead(java.io.FileDescriptor)
方法拒絕對該文件進行讀取訪問
從以下版本開始:
JDK1.1
『貳』 android怎麼獲取分區路徑
我們可以在adb中使用df 來查看分區情況。
1、跨分區不能用 MV命令來拷貝。但是可以用CP命令。如PWD,當前目錄為:/data/local/tmp 。
此目錄下有個busybox和1.txt文件。則利用CP命令拷貝如下:./busybox cp1.txt /system.
2、Android的用戶組有 System, root, shell
3、怎麼樣才能操作分區。
分區操作是需要許可權的。一般來說System分區的許可權限製得比較嚴,Data分區限制比較嚴,用戶可以操作的目錄有local,app目錄。比如/data/local/tmp.
data分區常用目錄:app , system , data ,local,misc 其中system,local可以進入並使用ls等命令。data,app可以進入,但不能用ls命令。
data/data目錄:存放的是所有APK程序數據的目錄,每個APK對就一個自己的Data目錄,就是在data/data/目錄下,會產生一個跟Package一樣的目錄。如有一個APK,它的包名叫com.test.hello則,在data/data/目錄下會有一個com.test.hello的目錄,這個APK只能操作此目錄,不能操作其它APK的目錄.這個在LINUX下叫做用戶進程只能操作自己的進程目錄.
data/app目錄:用戶安裝的APK放在這里。我們如果把APK放入這個文件夾下面的話,就算安裝好了。這就叫靜默安裝。不用管APK文件裡面的lib目錄下的庫文件,系統會自動幫我們放入調用庫的。
data/system目錄下面有packages.xml ,packages.list,appwidgets.xml, 等等一些記錄手機安裝的軟體,Widget等信息。
data/misc目錄:保存WIFI帳號,VPN設置信息等。如保存了一個WIFI連接帳號,則此目錄下的WIFI目錄下面可以查看到。
system分區常用目錄: app , lib, xbin, bin , media,framework.
system/app目錄:存放系統自帶的APK。沒有測試過是否將APK放入到System/app目錄下,也是靜默安裝APK。?
system/lib目錄:存放APK程序用到的庫文件。
system/bin目錄和system/xbin目錄:存放的是shell命令。
system/framework目錄:啟用Android系統所用到框架,如一些jar文件。
4 Android下面的目錄都是有許可權的,要操作目錄都需要有此許可權才能操作,如果沒有,則使用chomd777來修改.如果是分區根目錄,如/data分區, /system分區.都沒有許可權,則需要重新掛載. 使用 mount -oremount XX
『叄』 android系統中的app安裝後的各個文件路徑在哪裡
在系統中system/app文件夾中。
在此首android系統中安裝軟體時,系統會將其安裝在設定好的路徑當中,即system/app路徑。後來下載的APP可以卸載,但系統自帶的APP不能卸載,否則會引發系統的崩潰。
在安裝APP時,也可以直接將文件復制到手機里(手機內存、Storage Card都可以),在手機上執行該CAB文件即可安裝。
(3)android獲取程序路徑擴展閱讀
android系統中的app不同格式安裝:
1、CAB格式,直接將文件到手機里,都可以在手機森肆數上執行該CAB文件即可安裝。
2、EXE格式,EXE格式的程序可分為手機上直接運行(即綠色軟體的形式)和連接電腦同步安裝2種形式。
3、免安裝軟體(綠色軟體),將文件直接拷貝到手機里(手機內存、Storage Card都可以)即可運行。這種軟體在網上下載時一般是RAR或ZIP格雹帶式壓縮包,只需先在電腦上解壓,將解壓出來的文件夾拷貝到手機里即可運行。
4、Cpl文件,將文件直接拷貝到手機windows目錄下,即可在設置中出現相應的選項。如SoftKeyAppleEx.cpl對應會出現軟體設置選項。
『肆』 android系統中的app安裝後的各個文件路徑在哪裡
在系統中system/app文件夾中。
在android系統中安裝軟體時,系統會將其安裝在設定好的路徑當中,即system/app路徑。後來下載的APP可以卸載,但系統自帶的APP不能卸載,否則會引發系統的崩潰。
在安裝APP時,也可以直接將文件復制到手機里(手機內存、Storage Card都可以),在手機上執行該CAB文件即可安裝。
(4)android獲取程序路徑擴展閱讀
android系統中的app不同格式安裝:
1、CAB格式,直接將文件到手機里,都可以在手機上執行該CAB文件即可安裝。
2、EXE格式,EXE格式的程序可分為手機上直接運行(即綠色軟體的形式)和連接電腦同步安裝2種形式。
3、免安裝軟體(綠色軟體),將文件直接拷貝到手機里(手機內存、Storage Card都可以)即可運行。這種軟體在網上下載時一般是RAR或ZIP格式壓縮包,只需先在電腦上解壓,將解壓出來的文件夾拷貝到手機里即可運行。
4、Cpl文件,將文件直接拷貝到手機windows目錄下,即可在設置中出現相應的選項。如SoftKeyAppleEx.cpl對應會出現軟體設置選項。
『伍』 android系統中的app安裝後的各個文件路徑在哪裡
Android系統中,應用程序的安裝文件路徑主要集中在/data/data/目錄下。不過,這里的文件並不是直接解壓出來的。每個應用程序都有一個獨立的目錄,其路徑為/data/data/。例如,微信的路徑可能是/data/data/com.tencent.mm。
除了/data/data/目錄外,應用程序的緩存文件通常保存在/data/data//cache/目錄中。如果需要查看應用程序的緩存文件,可以在這里找到。
如果應用程序使用了外部存儲空間,如SD卡,其路徑可能在//files/或//cache/。例如,微信可能會在//files/中存儲一些文件。
值得注意的是,普通用戶無法直接訪問/data/data/目錄,除非獲得root許可權。在非root的Android系統中,用戶可以使用文件管理器查看應用的緩存和文件夾,但無法查看具體的應用程序代碼。
對於開發者而言,可以通過ADB工具查看和操作這些文件路徑。例如,使用命令adb shell可以進入Android設備的命令行界面,從而查看和操作文件。
另外,Android系統還為開發者提供了API來管理和操作應用程序文件。例如,Context對象提供了getFilesDir()和getCacheDir()方法,可以分別獲取應用程序的內部存儲文件路徑和緩存文件路徑。
總之,Android系統中的應用程序文件路徑涉及多個目錄,不同類型的文件存儲在不同的路徑中。普通用戶可以查看緩存和文件夾,而開發者則可以通過API和ADB工具進行更深入的操作。