❶ Android訪問不了私有文件夾
在介紹如何在Android平台下進行文件的讀取之前,有必要了解Android平台下的數據存儲規則。在其他的操作系統如Windows
平台下,應用程序可以自由地或者在特定的訪問許可權基礎上訪問或修改其他應用程序名下的文件等資源,而在Android平台下,一個應用程序中所有的數據都是私有的。
當應用程序被安裝到系統中後,其所在的包會有一個文件夾用於存放自己的數據,只有這個應用程序才有對這個文件夾的寫入許可權,這個私有的文件夾位於Android系統的/data/data/<應用程序包名>目錄下,其他的應用程序都無法再這個文件夾中寫入數據。除了存放私有的數據文件夾外,應用程序也具有SD卡的寫入許可權。
使用文件I/O 方法可以直接往手機中存儲數據,默認情況下這些文件不可以被其他的應用程序訪問。Android平台支持
java平台下的 文件I/O操作, 主要使用FileInputStream 和 FileOutputStream
這兩個類來實現文件的存儲與讀取。獲取這兩個類對象的方式有兩種
。詳細
❷ 請教應用程序能否訪問/private /var/ mobile/Media下的文件
iPhone的程序受「沙盒」機制限制,無法訪問程序文件夾以外的資源(但可通過UIImagePickerController訪問照片庫)。Simulator中,程序文件夾位於:用戶/Application Support/iPhone Simulator/User/Applications下。可讀寫文件,但不能超過這個文件...
❸ 寫至文件時出錯 請確認您有權訪問該目錄
原因:卸載不完整導致。
解決方法:
1、進入我的電腦→C盤→刪除SSD2文件夾。
2、進入我的電腦→C盤-Program Files→刪除SRSSoft文件夾。
3、重新載入或下載客戶端。
出錯原因:
一、應用程序
應用程序由於自身BUG引用了不正常的內存游標
在使用動態分配的應用程序中,有時會有這樣的情況出現:程序試圖讀寫一塊「應該可用」的內存,但不知為什麼,這個預料中可用的游標已經失效了。有可能是「忘記了」向操作系統要求分配,也可能是程序自己在某個時候已經注銷了這塊內存而「沒有留意」等等。
注銷了的內存被系統回收,其訪問權已經不屬於該應用程序,因此讀寫操作也同樣會觸發系統的保護機制,企圖「違法」的程序唯一的下場就是被操作終止執行,回收全部資源。計算機世界的法律還是要比人類有效和嚴厲得多啊!
二、木馬病毒
木馬或病毒這類程序為了控制系統往往不負責任地修改系統,從而導致操作系統異常。平常應加強信息安全意識,對來源不明的可執行程序絕不好奇。
三、操作系統
有時候操作系統本身也會有BUG,要注意安裝官方發行的升級程序。更新操作系統,讓操作系統的安裝程序重新拷貝正確版本的系統檔案、修正系統參數。
四、硬體本身
硬體本身質量問題及不兼容的情況,同時還要注意散熱問題,超頻等特殊情況。
以上內容參考網路-應用程序出錯
❹ 是否可以設定某個應用程序對文件夾的訪問許可權
應該沒有。
系統安全是針對用戶來的,比如有些電腦設置了多個用戶,登錄時會讓選擇一個用戶,登錄後用戶的許可權就完全明確了
部分軟體、系統自帶的策略也可以限制某個文件被訪問,但這是全局的,最多針對用戶,不會針對程序
你的需求,我覺得虛擬機可能比較接近
❺ 如何在windows里限制每個應用程序所能訪問的目錄、文件
沙盤方式運行程序,或是虛擬環境運行程序,這是我能想到的,長久以為就是一直想限製程序往系統目錄裡面安裝東西,但很多軟體都把系統目錄越塞越大
❻ android 微信7.0怎麼獲取存儲許可權
AndroidN除了提供諸多新特性和功能外,還對系統和API行為做出了各種變更。本文重點介紹您應該了解並在開發應用時加以考慮的一些重要變更。如果您之前發布過Android應用,請注意您的應用可能受到這些平台變更的影響。電池和內存AndroidN包括旨在延長設備電池壽命和減少RAM使用的系統行為變更。這些變更可能會影響您的應用訪問系統資源,以及您的系統通過特定隱式Intent與其他應用互動的方式。低電耗模式Android6.0(API級別23)引入了低電耗模式,當用戶設備未插接電源、處於靜止狀態且屏幕關閉時,該模式會推遲CPU和網路活動,從而延長電池壽命。而AndroidN則通過在設備未插接電源且屏幕關閉狀態下、但不一定要處於靜止狀態(例如用戶外出時把手持式設備裝在口袋裡)時應用部分CPU和網路限制,進一步增強了低電耗模式。圖1.低電耗模式如何應用第一級系統活動限制以延長電池壽命的圖示。當設備處於充電狀態且屏幕已關閉一定時間後,設備會進入低電耗模式並應用第一部分限制:關閉應用網路訪問、推遲作業和同步。如果進入低電耗模式後設備處於靜止狀態達到一定時間,系統則會對PowerManager.WakeLock、AlarmManager鬧鈴、GPS和Wi-Fi掃描應用餘下的低電耗模式限制。無論是應用部分還是全部低電耗模式限制,系統都會喚醒設備以提供簡短的維護時間窗口,在此窗口期間,應用程序可以訪問網路並執行任何被推遲的作業/同步。圖2.低電耗模式如何在設備處於靜止狀態達到一定時間後應用第二級系統活動限制的圖示。請注意,激活屏幕或插接設備電源時,系統將退出低電耗模式並取消這些處理限制。此項新增的行為不會影響有關使您的應用適應Android6.0(API級別23)中所推出的舊版本低電耗模式的建議和最佳實踐,如低電耗模式和應用待機模式優化中所討論。您仍應遵循這些建議(例如使用GoogleCloudMessaging(GCM)發送和接收消息)並開始安排更新計劃以適應新增的低電耗模式行為。ProjectSvelte:後台優化AndroidN刪除了三項隱式廣播,以幫助優化內存使用和電量消耗。此項變更很有必要,因為隱式廣播會在後台頻繁啟動已注冊偵聽這些廣播的應用。刪除這些廣播可以顯著提升設備性能和用戶體驗。移動設備會經歷頻繁的連接變更,例如在Wi-Fi和移動數據之間切換時。目前,可以通過在應用清單中注冊一個接收器來偵聽隱式CONNECTIVITY_ACTION廣播,讓應用能夠監控這些變更。由於很多應用會注冊接收此廣播,因此單次網路切換即會導致所有應用被喚醒並同時處理此廣播。同理,應用可以注冊接收來自其他應用(例如相機)的隱式ACTION_NEW_PICTURE和ACTION_NEW_VIDEO廣播。當用戶使用相機應用拍攝照片時,這些應用即會被喚醒以處理廣播。為緩解這些問題,AndroidN應用了以下優化措施:面向AndroidN開發的應用不會收到CONNECTIVITY_ACTION廣播,即使它們已有清單條目來請求接受這些事件的通知。在前台運行的應用如果使用BroadcastReceiver請求接收通知,則仍可以在主線程中偵聽CONNECTIVITY_CHANGE。應用無法發送或接收ACTION_NEW_PICTURE或ACTION_NEW_VIDEO廣播。此項優化會影響所有應用,而不僅僅是面向AndroidN的應用。如果您的應用使用任何Intent,您仍需要盡快移除它們的依賴關系,以正確適配AndroidN設備。Android框架提供多個解決方案來緩解對這些隱式廣播的需求。例如,JobSchelerAPI提供了一個穩健可靠的機制來安排滿足指定條件(例如連入無限流量網路)時所執行的網路操作。您甚至可以使用JobScheler來適應內容提供程序變化。如需了解有關AndroidN中後台優化以及如何改寫應用的詳細信息,請參閱後台優化。許可權更改AndroidN做了一些許可權更改,這些更改可能會影響您的應用。系統許可權更改為了提高私有文件的安全性,面向AndroidN或更高版本的應用私有目錄被限制訪問(0700)。此設置可防止私有文件的元數據泄漏,如它們的大小或存在。此許可權更改有多重副作用:私有文件的文件許可權不應再由所有者放寬,為使用MODE_WORLD_READABLE和/或MODE_WORLD_WRITEABLE而進行的此類嘗試將觸發SecurityException。註:迄今為止,這種限制尚不能完全執行。應用仍可能使用原生API或FileAPI來修改它們的私有目錄許可權。但是,我們強烈反對放寬私有目錄的許可權。傳遞軟體包網域外的file://URI可能給接收器留下無法訪問的路徑。因此,嘗試傳遞file://URI會觸發FileUriExposedException。分享私有文件內容的推薦方法是使用FileProvider。DownloadManager不再按文件名分享私人存儲的文件。舊版應用在訪問COLUMN_LOCAL_FILENAME時可能出現無法訪問的路徑。面向AndroidN或更高版本的應用在嘗試訪問COLUMN_LOCAL_FILENAME時會觸發SecurityException。通過使用DownloadManager.Request.()或DownloadManager.Request.()將下載位置設置為公共位置的舊版應用仍可以訪問COLUMN_LOCAL_FILENAME中的路徑,但是我們強烈反對使用這種方法。訪問由DownloadManager公開的文件的首選方式是使用ContentResolver.openFileDescriptor()。應用間共享文件對於面向AndroidN的應用,Android框架執行的StrictModeAPI政策禁止向您的應用外公開file://URI。如果一項包含文件URI的Intent離開您的應用,應用失敗,並出現FileUriExposedException異常。若要在應用間共享文件,您應發送一項content://URI,並授予URI臨時訪問許可權。進行此授權的最簡單方式是使用FileProvider類。如需有關許可權和共享文件的信息,請參閱共享文件。無障礙改進為提高平台對於視力不佳或視力受損用戶的可用性,AndroidN做出了一些更改。這些更改一般並不要求更改您的應用代碼,不過您應仔細檢查並使用您的應用測試這些功能,以評估它們對用戶體驗的潛在影響。屏幕縮放AndroidN支持用戶設置顯示尺寸,以放大或縮小屏幕上的所有元素,從而提升設備對視力不佳用戶的可訪問性。用戶無法將屏幕縮放至低於最小屏幕寬度sw320dp,該寬度是Nexus4的寬度,也是常規中等大小手機的寬度。圖3.右側屏幕顯示的是一台運行AndroidN系統映像的設備增大顯示尺寸後的效果。當設備密度發生更改時,系統會以如下方式通知正在運行的應用:如果是面向API級別23或更低版本系統的應用,系統會自動終止其所有後台進程。這意味著如果用戶切換離開此類應用,轉而打開「Settings」屏幕並更改Displaysize設置,則系統會像處理內存不足的情況一樣終止該應用。如果應用具有任何前台進程,則系統會如處理運行時變更中所述將配置變更通知給這些進程,就像對待設備屏幕方向變更一樣。如果是面向AndroidN的應用,則其所有進程(前台和後台)都會收到有關配置變更的通知,如處理運行時變更中所述。大多數應用並不需要進行任何更改即可支持此功能,不過前提是這些應用遵循Android最佳實踐。具體要檢查的事項:在屏幕寬度為sw320dp的設備上測試您的應用,並確保其充分運行。當設備配置發生變更時,更新任何與密度相關的緩存信息,例如緩存點陣圖或從網路載入的資源。當應用從暫停狀態恢復運行時,檢查配置變更。註:如果您要緩存與配置相關的數據,則最好也包括相關元數據,例如該數據對應的屏幕尺寸或像素密度。保存這些元數據便於您在配置變更後決定是否需要刷新緩存數據。避免用像素單位指定尺寸,因為像素不會隨屏幕密度縮放。應改為使用與密度無關像素(dp)單位指定尺寸。設置向導中的視覺設置AndroidN在「Welcome」屏幕中加入了「VisionSettings」,用戶可以在新設備上設置以下無障礙功能設置:Magnificationgesture、Fontsize、Displaysize和TalkBack。此項變更增強了與不同屏幕設置相關的錯誤的可見性。要評估此功能的影響,您應在啟用這些設置的狀態下測試應用。您可以在Settings>Accessibility中找到這些設置。NDK應用鏈接至平台庫AndroidN做了一些命名空間更改,以阻止載入非公開API。如果您使用NDK,則只能使用Android平台提供的公開API。在下一個官方發布的Android版本上使用非公開API會導致應用崩潰。為提醒您使用了非公開API,在AndroidN設備上運行的應用會在有應用調用非公開API時在日誌消息輸出中生成一個錯誤。此錯誤還會作為消息顯示在設備屏幕上,以幫助增強您對此情況的認識。您應檢查應用代碼以刪除使用非公開平台API,並使用預覽版設備或模擬器全面測試應用。如果您的應用依賴平台庫,則請參見NDK文檔,了解使用公開API等效項替換普通私有API的典型修復。您還可以鏈接至平台庫,而無需實現此應用,如果應用使用的庫是平台的一部分(例如libpng),但不屬於NDK,則更可如此。此情況下,請確保您的APK包含您打算鏈接到的所有.so文件。注意:有些第三方庫可能會鏈接至非公開API。如果您的應用使用這些庫,那麼當您的應用在下一個官方發布的Android版本上運行時可能會出現崩潰現象。應用不應依賴或使用不屬於NDK的原生庫,因為這些庫可能會發生更改或從一個Android版本遷移至另一版本。例如,從OpenSSL切換至BoringSSL即屬於此類更改。此外,不同的設備可能提供不同級別的兼容性,因為不屬於NDK中的平台庫沒有兼容性要求。如果您必須在較舊設備上訪問非NDK庫,則請依據AndroidAPI級別進行載入。為幫助您診斷此類問題,下面列舉了一些在您試圖使用AndroidN開發應用時可能遇到的Java和NDK錯誤:Java錯誤示例:java.lang.UnsatisfiedLinkError:dlopenfailed:library"/system/lib/libcutils.so""classloader-namespace"NDK錯誤示例:dlopenfailed:cannotlocatesymbol"__system_property_get"referencedby以下是遇到這類錯誤的應用的一些典型修復:可以使用標准JNI函數來替代使用libandroid_runtime.so中的getJavaVM和getJNIEnv:AndroidRuntime::getJavaVM->GetJavaVMfromAndroidRuntime::getJNIEnv->JavaVM::GetEnvorJavaVM::AttachCurrentThreadfrom.可以使用公開alternative__system_property_get來替代使用libcutils.so中的property_get符號。如需這樣做,請使用__system_property_get及以下include函數:#include應使用應用本地版本來替代使用libcrypto.so中的SSL_ctrl符號。例如,您應在.so文件中靜態鏈接libcyrpto.a,或者在應用中包含您自己的來自BoringSSL或OpenSSL的動態libcrypto.so。AndroidforWorkAndroidN包含一些針對面向AndroidforWork的應用的變更,包括對證書安裝、密碼重置、二級用戶管理、設備標識符訪問許可權的變更。如果您是要針對AndroidforWork環境開發應用,則應仔細檢查這些變更並相應地修改您的應用。您必須先安裝授權證書安裝程序,然後DPC才能對其進行設置。對於面向NSDK的個人資料和設備所有者應用,您應在設備策略控制器(DPC)調用DevicePolicyManager.setCertInstallerPackage()之前安裝授權證書安裝程序。如果尚未安裝此安裝程序,則系統會引發IllegalArgumentException。針對設備管理員的重置密碼限制現在也適用於個人資料所有者。設備管理員無法再使用DevicePolicyManager.resetPassword()來清除或更改已經設置的密碼。設備管理員仍可以設置密碼,但只能在設備沒有密碼、PIN或圖案時這樣做。即使設置了限制,設備所有者和個人資料所有者仍可以管理帳戶。而且,即使具有DISALLOW_MODIFY_ACCOUNTS用戶限制,設備所有者和個人資料所有者仍可調用AccountManagementAPI。設備所有者可以更輕松地管理二級用戶。當設備在設備所有者模式下運行時,系統將自動設置DISALLOW_ADD_USER限制。這樣可以防止用戶創建非託管二級用戶。此外,CreateUser()和createAndInitializeUser()方法已棄用,取而代之的是DevicePolicyManager.createAndManageUser()方法。設備所有者可以訪問設備標識符。設備所有者可以使用DevicePolicyManagewr.getWifiMacAddress()訪問設備的Wi-FiMAC地址。如果設備上從未啟用Wi-Fi,則此方法將返回一個null值。工作模式設置控制工作應用訪問。當工作模式關閉時,系統啟動器通過使工作應用顯示為灰色來指示它們不可用。啟用工作模式會再次恢復正常行為。如需了解有關AndroidN中針對AndroidforWork所做變更的詳細信息,請參閱AndroidforWork更新。註解保留AndroidN在註解可見性被忽略時修復錯誤。這種問題將啟用本不應被允許的運行時訪問註解。這些註解包括:VISIBILITY_BUILD:僅應編譯時可見。VISIBILITY_SYSTEM:運行時應可見,但僅限基本系統。如果您的應用依賴這種行為,請在註解中添加一項運行時必須可用的保留政策。您可通過使用@Retention(RetentionPolicy.RUNTIME)來如此做。其他重要說明如果一個應用在AndroidN上運行,但卻是針對更低API級別開發的,那麼在用戶更改顯示尺寸時,系統將終止此應用進程。應用必須能夠正常處理此情景。否則,當用戶從最近使用記錄中恢復運行應用時,應用將會出現崩潰現象。您應測試應用以確保不會發生此行為。要進行此測試,您可以通過DDMS手動終止應用,以造成相同的崩潰現象。在密度發生更改時,系統不會自動終止面向N及更高版本的應用;不過,這些應用仍可能對配置變更做出不良響應。AndroidN上的應用應能夠正常處理配置變更,並且在後續啟動時不會出現崩潰現象。您可以通過更改字體大小(Setting>Display>Fontsize)並隨後從最近使用記錄中恢復運行應用,來驗證應用行為。由於之前的Android版本中的一項錯誤,系統未能將對主線程上的一個TCP套接字的寫入操作舉報為嚴格模式違反。AndroidN修復了此錯誤。呈現出這種行為的應用引發android.os.NetworkOnMainThreadException。一般情況下,我們不建議在主線程上執行網路操作,因為這些操作通常都有可能導致ANR和卡頓的高尾延遲。Debug.startMethodTracing()方法族現在默認在您的共享的存儲空間上的軟體包特定目錄中存儲輸出,而非SD卡頂級。這意味著應用不再需要請求WRITE_EXTERNAL_STORAGE使用這些API的許可權。許多平台API現在開始檢查在Binder事務間發送的大負載,系統現在會將TransactionTooLargeExceptions再次作為RuntimeExceptions引發,而不再只是默默記錄或抑制它們。一個常見例子是在Activity.onSaveInstanceState()上存儲過多數據,導致ActivityThread.StopInfo在您的應用面向AndroidN時引發RuntimeException。如果應用向View發布Runnable任務,並且View未附加到窗口,系統會用View為Runnable任務排隊;在View附加到窗口之前,Runnable任務不會執行。此行為會修復以下錯誤:如果一項應用是從並非預期窗口UI線程的其他線程發布到View,則Runnable可能會因此運行錯誤的線程。如果Runnable任務是從並非環路線程的其他線程發布,則應用可能會曝光Runnable任務。如果AndroidN上一項有DELETE_PACKAGES許可權的應用嘗試刪除一個軟體包,但另一項應用已經安裝了這個軟體包,則系統可能要求用戶確認。在這種情況下,應用在調用PackageInstaller.uninstall()時的返回狀態應為STATUS_PENDING_USER_ACTION。
❼ android中一個應用程序可以訪問另一個程序的私有目錄嗎
據我所知似乎是沒有辦法修改的。
應用程序的安裝只能在flash內,而資源之類可以放到sd卡上。
有個第三方管理器,可以讓你指定安裝目錄,甚至安裝到sd卡上,但是僅限於不大的應用。因為最終都是load到ram中執行的。
❽ android怎麼獲取應用的目錄
一、方法介紹:
每個Android應用程序都可以通過Context來獲取與應用程序相關的目錄,這些目錄的功能各異,每一個目錄都有自己的特點,有時候可能會搞混淆,本文結合android源碼注釋和實際操作,詳細介紹一下每個方法:
方法:getFilesDir
釋義:返回通過Context.openFileOutput()創建和存儲的文件系統的絕對路徑,應用程序文件,這些文件會在程序被卸載的時候全部刪掉。
方法:getCacheDir
釋義:返回應用程序指定的緩存目錄,這些文件在設備內存不足時會優先被刪除掉,所以存放在這里的文件是沒有任何保障的,可能會隨時丟掉。
方法:getDir
釋義:這是一個可以存放你自己應用程序自定義的文件,你可以通過該方法返回的File實例來創建或者訪問這個目錄,注意該目錄下的文件只有你自己的程序可以訪問。
方法:getExternalCacheDir
釋義:使用這個方法需要寫外部存儲的許可權「<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />」,調用該方法會返回應用程序的外部文件系統(Environment.getExternalStorageDirectory())目錄的絕對路徑,它是用來存放應用的緩存文件,它和getCacheDir目錄一樣,目錄下的文件都會在程序被卸載的時候被清除掉。
方法:getExternalFilesDir
釋義:使用這個方法需要寫外部存儲的許可權「<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />」,這個目錄是與應用程序相關的外部文件系統,它和getExternalCacheDir不一樣的是只要應用程序存在它就會一直存在,這些文件只屬於你的應用,不能被其它人訪問。同樣,這個目錄下的文件在程序被卸載時也會被一同刪除。
方法:getExternalFilesDir
釋義:和上面的方法一樣,只是返回的是其目錄下某一類型的文件,這些類型可以是: Environment#DIRECTORY_MUSIC 音樂 Environment#DIRECTORY_PODCASTS 音頻 Environment#DIRECTORY_RINGTONES 鈴聲 Environment#DIRECTORY_ALARMS 鬧鈴 Environment#DIRECTORY_NOTIFICATIONS 通知鈴聲 Environment#DIRECTORY_PICTURES 圖片 Environment#DIRECTORY_MOVIES 視頻
方法:getDatabasePath
釋義:保存通過Context.openOrCreateDatabase 創建的資料庫文件
方法:getPackageCodePath
釋義:返回android 安裝包的完整路徑,這個包是一個zip的壓縮文件,它包括應用程序的代碼和assets文件。
方法:getPackageResourcePath
釋義:返回android 安裝包的完整路徑,這個包是一個ZIP的要鎖文件,它包括應用程序的私有資源。
方法:getObbDir
釋義:返回應用程序的OBB文件目錄(如果有的話),注意如果該應用程序沒有任何OBB文件,這個目錄是不存在的。
二、測試程序:
測試代碼如下:
private StringBuilder getFilePath( ){
StringBuilder filePathBuilder = new StringBuilder( );
// 返回通過Context.openFileOutput()創建和存儲的文件系統的絕對路徑,應用程序文件,這些文件會在程序被卸載的時候全部刪掉。
filePathBuilder.append( "getFilesDir == " ).append( getFilesDir( ) ).append( "\n" );
// 返回應用程序指定的緩存目錄,這些文件在設備內存不足時會優先被刪除掉,所以存放在這里的文件是沒有任何保障的,可能會隨時丟掉。
filePathBuilder.append( "getCacheDir == " ).append( getCacheDir( ) ).append( "\n" );
// 這是一個可以存放你自己應用程序自定義的文件,你可以通過該方法返回的File實例來創建或者訪問這個目錄,注意該目錄下的文件只有你自己的程序可以訪問。
filePathBuilder.append( "getDir == " ).append( getDir("test.txt", Context.MODE_WORLD_WRITEABLE) ).append( "\n" );
/* 需要寫文件許可權 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> */
// 調用該方法會返回應用程序的外部文件系統(Environment.getExternalStorageDirectory())目錄的絕對路徑,它是用來存放應用的緩存文件,它和getCacheDir目錄一樣,目錄下的文件都會在程序被卸載的時候被清除掉。
filePathBuilder.append( "getExternalCacheDir == " ).append( getExternalCacheDir( ) ).append( "\n" );
// 這個目錄是與應用程序相關的外部文件系統,它和getExternalCacheDir不一樣的是只要應用程序存在它就會一直存在,這些文件只屬於你的應用,不能被其它人訪問。同樣,這個目錄下的文件在程序被卸載時也會被一同刪除。
filePathBuilder.append( "getExternalFilesDir == " ).append( getExternalFilesDir( "/" ) ).append( "\n" );
/**
* 和上面的方法一樣,只是返回的是其目錄下某一類型的文件,這些類型可以是:
* Environment#DIRECTORY_MUSIC 音樂
* Environment#DIRECTORY_PODCASTS 音頻
* Environment#DIRECTORY_RINGTONES 鈴聲
* Environment#DIRECTORY_ALARMS 鬧鈴
* Environment#DIRECTORY_NOTIFICATIONS 通知鈴聲
* Environment#DIRECTORY_PICTURES 圖片
* Environment#DIRECTORY_MOVIES 視頻
*
* */
filePathBuilder.append( "getExternalFilesDir == " ).append( getExternalFilesDir( Environment.DIRECTORY_PICTURES ) ).append( "\n" );
// 保存通過Context.openOrCreateDatabase 創建的資料庫文件
filePathBuilder.append( "getDatabasePath == " ).append( getDatabasePath( DATA_BASE_NAME ) ).append( "\n" );
// 返回android 安裝包的完整路徑,這個包是一個zip的壓縮文件,它包括應用程序的代碼和assets文件
filePathBuilder.append( "getPackageCodePath == " ).append( getPackageCodePath( ) ).append( "\n" );
// 返回android 安裝包的完整路徑,這個包是一個ZIP的要鎖文件,它包括應用程序的私有資源。
filePathBuilder.append( "getPackageResourcePath == " ).append( getPackageResourcePath( ) ).append( "\n" );
// 返回應用程序的OBB文件目錄(如果有的話),注意如果該應用程序沒有任何OBB文件,這個目錄是不存在的。
filePathBuilder.append( "getObbDir == " ).append( getObbDir( ) ).append( "\n" );
return filePathBuilder;
}
❾ X.500的X.500的
X.500 主要具備以下特徵
1(Decentralized Maintenance):運行 X.500 的每個站點只負責其本地目錄部分,所以可以立即進行更新和維護操作。
2.:X.500 提供強大的搜索功能,支持用戶建立的任意復雜查詢。
3.單一全局命名空間(Single Global Namespace):類似於 DNS,X.500 為用戶提供單一相同命名空間(single homogeneous namespace)。與 DNS 相比,X.500 的命名空間更靈活且易於擴展。
4.結構化信息結構(Structured Information Framework):X.500 目錄中定義了信息結構,允許本地擴展。
5.基於標準的目錄服務(Standards-Based Directory Service):由於 X.500 可以被用於建立一個基於標準的目錄,那麼在某種意義上,請求應用目錄信息(電子郵件、資源自動分配器、特定目錄工具)的應用程序就能訪問重要且有價值的信息。
由於 X.500 的實施太過於復雜而受到批評。為解決這個問題,密歇根州(Michigan)大學推出了一種較為簡單的基於 TCP/IP 的 DAP 新版本,即輕量級目錄訪問協議 (LDAP:Lightweight Directory Access Protocol),主要用於網際網路。 LDAP 與 DAP 具有很多類似的基本功能,另外它還能用來查詢私有目錄和開放 X.500 目錄 上的數據。在過去的幾年裡,大多數主要的電子郵件和目錄服務軟體供應商都對 LDAP 表現出了極大的興趣,LDAP 已迅速發展成為網際網路上事實的目錄協議標准。
❿ android中使用java.io.File,java.io.FileOutputStream,F
有幾點的問題哦:你看看:
1.方法都只支持操作當前Android應用程序文件夾下的文件,即應用的私有目錄。這個私有目錄位於Android系統的「/data/data/<應用程序報名>/」目錄中。
2.傳入的文件名不能帶有任何的路徑信息,只需要傳入文件名即可(包括擴展名)。
3.當創建文件時,如果指定的文件不存在,則Android會創建文件,而對於存在的文件,默認使用覆蓋私有模式(Context.MODE_PRIVATE)對文件進行寫操作;如果想讓增量方式寫入已存在文件,需要指定輸出模式為Context.MODE_APPEND。
4.如果打算讓其他應用訪問輸出的文件,可以設置輸出模式為只讀Context.MODE_WORLD_READABLE或可讀寫Context.MODE_WORLD_WRITEABLE。