Xamarin.Mac 设置文件只读
来源:互联网 发布:java网盘系统源码 编辑:程序博客网 时间:2024/05/16 15:51
你所浪费的今天,是昨天死去的人奢望的明天 2016年8月18日 星期四
Xamarin.Mac 设置文件只读
做项目时,程序运行时生成的一些文件往往不希望用户来更改,不然用户的更改可能会导致程序运行的不正常,所以我们就要在代码中设置文件只读。
那么如何设置文件只读呢?我们先来观察一下文件的属性,随便选择一个文件右键点击显示简介如下图所示:
从上图我们可以看到,实现文件只读有两种方式:
1.锁定文件
2.设置文件的读写权限
那么我们在代码中设置文件只读,也可以从这两方面入手。我们不难猜出,显示简介中的这些信息就是文件的一些属性,只要我们知道如何修改文件的属性,那么问题基本就可以解决了。
网上搜索资料不难发现有一个类NSFileManager可以用来操作文件,NSFileManager中有 两个方法GetAttributes和SetAttributes。通过这两个方法我们可以获取和设置文件的属性。
首先我们尝试通过第一种方式—锁定文件来实现文件的只读,通过GetAttributes方法我们可以获取到文件的属性,它是一个NSFileAttributes对象,NSFileAttributes中有一个属性Immutable就是用来设置文件上锁的。Immutable翻译成中文就是”不可改变的“,如果英文不好猜不出这个属性的作用时,我们也可以在显示简介中切换文件的锁定状态然后再代码中获取文件的属性值来对比查看锁定状态对应的是文件属性的那个值。这样一来,设置文件只读就可以通过以下四行代码来简单实现了。
NSFileManager fm = new NSFileManager();NSFileAttributes fa = fm.GetAttributes("你的文件路径");fa.Immutable = true;fm.SetAttributes(fa, “你的文件路径");
下面我们尝试通过第二种方式—设置文件的读写权限来实现文件的只读。原理和方式一类似,这里就不过多赘述了,只不过这里我们要修改的属性是PosixPermissions,代码如下:
NSFileManager fm = new NSFileManager();NSFileAttributes fa = fm.GetAttributes("你的文件路径");fa.PosixPermissions = (short)292;fm.SetAttributes(fa, “你的文件路径");
这里我解释一下属性值为何设置为292。我们在维基百科中搜索File system permissions(https://en.wikipedia.org/wiki/File_system_permissions#User_private_group)可以知道文件的权限分为三部分组成:拥有者权限、组权限、其他人权限,每个部分由三位来表示,分别代表可读、可写、可执行。
那么我们设置文件制度的话Symbolic Notation就是 -r- -r- - r- -,对应的二进制表示就是0100100100,转换为10进制就是
在维基百科中看文件的系统属性时有这么一段话:
Classic Mac Operating Systems' HFS do not support permissions, only file attributes: "Hidden" (does not show in directory listings); "Locked" (read-only); "Name locked" (cannot be renamed); and "Stationery" (copy-on-write).【翻译:经典的Mac操作系统的HFS不支持权限,只有文件属性:“隐藏”(不在目录列表中显示);“锁定”(只读);名称“锁定”(不能改名);和“文具”(写时复制)。】
我们在文件的属性中发现有HfsTypeCode这个属性,也许通过这个属性也能设置文件只读,有兴趣的小伙伴可以自己研究一下。
- Xamarin.Mac 设置文件只读
- 设置Excel文件只读密码
- mac下面如何修改只读文件
- vba 设置txt文件只读,隐藏属性
- C#复制文件、设置隐藏,只读属性
- 设置UNIX系统文件只读权限
- 设置只读
- Mac系统Excel 只读文件“启用编辑”解决办法
- Xamarin MAC部署
- Xamarin MAC卸载
- linux里的文件,如何设置为只读权限文件
- java中上传文件后设置文件只读、隐藏
- Java-基础 文件操作IO 设置文件权限为只读
- mac环境变量设置文件
- 只读文件
- [MAC]只读的移动硬盘?
- 设置上传文件控件文本框只读属性代码
- 在VC中,如何修改文件的只读属性设置
- 【SDOI2016】生成魔咒
- 如何在本地安装mysql 服务器
- 8. wrong 2nd argument type found 'android.app.Fragment.' required 'Android.support.v4.app.Fragment'
- 解析Spring源码(4)--XmlBeanDefinitionReader
- 一步一步做Android Studio下JNI开发
- Xamarin.Mac 设置文件只读
- 让DLL卸载自身
- 开发中的创表SQL(1)
- session和cookie的区别
- 小墨
- 数据结构——8 单链表约瑟夫问题
- 两种格式的xml解析
- 写给像宝宝一样想要结束一段亲密关系的人
- 查找练习 hash——出现过的数字