Android中读取磁盘信息和权限问题
来源:互联网 发布:淘宝今年双十一销售额 编辑:程序博客网 时间:2024/04/30 00:11
1.获得磁盘信息:
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextView tvMemoryInfo = (TextView) findViewById(R.id.tv_memory_info);// 获得sd卡的内存状态File sdcardFileDir = Environment.getExternalStorageDirectory();String sdcardMemory = getMemoryInfo(sdcardFileDir);// 获得手机内部存储控件的状态File dataFileDir = Environment.getDataDirectory();String dataMemory = getMemoryInfo(dataFileDir);tvMemoryInfo.setText("SD卡: " + sdcardMemory + "\n手机内部: " + dataMemory);}/** * 根据路径获取内存状态 * @param path * @return */private String getMemoryInfo(File path) {// 获得一个磁盘状态对象 StatFs stat = new StatFs(path.getPath()); long blockSize = stat.getBlockSize();// 获得一个扇区的大小 long totalBlocks = stat.getBlockCount();// 获得扇区的总数 long availableBlocks = stat.getAvailableBlocks();// 获得可用的扇区数量 // 总空间 String totalMemory = Formatter.formatFileSize(this, totalBlocks * blockSize); // 可用空间 String availableMemory = Formatter.formatFileSize(this, availableBlocks * blockSize);return "总空间: " + totalMemory + "\n可用空间: " + availableMemory;}}
首先看看Android中的文件的权限相关信息:
后面:-rw-rw-rwx中,这是文件权限的表示,和Linux中文件权限表示相同的。
一共十个字符:第一个可以为d:表示文件夹 -:表示文件 l:表示快捷方式
2到10位分别表示:读写执 行
但是2-4: 5-7 8-10具体表示如下
一个关于权限小列子:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.read.MainActivity" > <Button android:id="@+id/btn_read_private" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="读私有文件" /> <Button android:id="@+id/btn_write_private" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="写私有文件" /> <Button android:id="@+id/btn_read_readable" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="读可读文件" /> <Button android:id="@+id/btn_write_readable" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="写可读文件" /> <Button android:id="@+id/btn_read_writeable" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="读可写文件" /> <Button android:id="@+id/btn_write_writeable" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="写可写文件" /> <Button android:id="@+id/btn_read_readable_writeable" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="读可读可写文件" /> <Button android:id="@+id/btn_write_readable_writeable" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="写可读可写文件" /> </LinearLayout>
package com.example.read;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener {private String basicPath="/data/data/com.example.quanxian/files/";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);findViewById(R.id.btn_read_private).setOnClickListener(this);findViewById(R.id.btn_write_private).setOnClickListener(this);findViewById(R.id.btn_read_readable).setOnClickListener(this);findViewById(R.id.btn_write_readable).setOnClickListener(this);findViewById(R.id.btn_read_writeable).setOnClickListener(this);findViewById(R.id.btn_write_writeable).setOnClickListener(this);findViewById(R.id.btn_read_readable_writeable).setOnClickListener(this);findViewById(R.id.btn_write_readable_writeable).setOnClickListener(this);}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch(v.getId()){case R.id.btn_read_private:readFile("private.txt");break;case R.id.btn_write_private:writeFile("private.txt");break;case R.id.btn_read_readable:readFile("readable.txt");break;case R.id.btn_write_readable:writeFile("readable.txt");break;case R.id.btn_read_writeable:readFile("writeable.txt");break;case R.id.btn_write_writeable:writeFile("writeable.txt");break;case R.id.btn_read_readable_writeable:readFile("readable_writeable.txt");break;case R.id.btn_write_readable_writeable:writeFile("readable_writeable.txt");break;}}/* * 读文件 */private void readFile(String fileName){String path=basicPath+fileName;try {BufferedReader reader=new BufferedReader(new InputStreamReader(new FileInputStream(path))); String text=reader.readLine(); reader.close();Toast.makeText(this,"读取成功"+text,0).show();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();Toast.makeText(this, "读取失败", 0).show();}}private void writeFile(String fileName){String path=basicPath+fileName;try {FileOutputStream fos=new FileOutputStream(path);fos.write(("哈哈,被我黑了").getBytes()); fos.flush(); fos.close(); Toast.makeText(this, "写入成功", 0).show();} catch (Exception e) { Toast.makeText(this, "写入失败", 0).show();// TODO Auto-generated catch blocke.printStackTrace();}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}}
根据这个列子需要了解权限及读写文件的操作。
具体设置权限的方法:利用shell命令
adb shell
cd /dada/data
cd 包名
ls
cd files
ls
ls -l 查看权限
-----------------------------------------------------------------------------最终是要进入到文件的目录,然后修改目录权限。
chmod 664 文件名
0 0
- Android中读取磁盘信息和权限问题
- Android中读取短信信息
- Android中读取短信信息
- Android中读取短信信息
- Android中读取短信信息
- Android中读取短信信息
- Android中读取短信信息
- Android中读取短信信息
- ioctl 操作 读取磁盘信息
- android读取email数据库的权限问题
- 在android中读取联系人信息的程序,包括读取联系人姓名、联系方式和邮箱等
- 在android中读取联系人信息的程序,包括读取联系人姓名、联系方式和邮箱等
- 在android中读取联系人信息的程序,包括读取联系人姓名、手机号码和邮箱
- 在android中读取联系人信息的程序,包括读取联系人姓名、联系方式和邮箱等
- 在android中读取联系人信息的程序,包括读取联系人姓名、手机号码和邮箱
- sql存储过程读取信息中问题
- iOS7中读取通讯录信息授权问题
- Android中获得应用的权限信息
- 1007. Maximum Subsequence Sum (25)
- ZOJ 3644 Kitty's Game(DP)
- PeopleSoft 登录页面更换
- NAT (Network Address Translation)
- stb linux 系统参数调整
- Android中读取磁盘信息和权限问题
- csdn的windows live writer xmlrpc地址
- 大牛链接
- 5分钟理解 Javascript 闭包
- [LeetCode]Simplify Path
- Lucene中使用高效压缩来压缩stored fields
- cf cmp!
- 后年将有60亿部手机!
- 推荐一个拥有大量开源项目和开发工具的网站