文件属性及操作

C#中文件属性操作的深入探索与实践 本文还有配套的精品资源,点击获取 简介:C#作为流行的编程语言,广泛应用于Windows应用、Web应用和游戏开发等领域。本文档“C# 文档操作FileProperties”深入探讨了如何在C#中处理文件属性,包括基本文件属性的读取、修改和创建,以及如何操作文件的元数据和高级属性。内容涵盖了FileInfo类的使用,NTFS属性的处理,文件元数据操作,***中的文件处理,以... 阅读详情
  在应用程序执行时,经常需要本地化保存一些重要的数据,这时就有可能需要创建一些目录。Objective-C提供了一个非常强大的创建目录的接口:
- (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary *)attributes error:(NSError **)error;

   很多人使用这个接口时,往往将attributes参数设置为nil,这样虽然能够创建出目录,但是在一些特殊场景下(比如iPhone的apps)所创建的目录的属性往往不是我们期望的,因而导致目录的读写失败等问题。其实通过设置attributes参数,这个接口可以完成我们的期望。

      根据苹果官方文档介绍,这个参数可以设置所创建目录所属的用户和用户组,目录的访问权限和修改时间等。如果设置为nil,那么所创建目录的属性则采用系统默认设置,一般会将目录的用户设置为root,访问权限设置为0755,这样就导致其他用户向这个目录写入时失败。

      attributes参数是一个字典类型。查看苹果官方文档的介绍,可以看到在NSFileManager.h头文件定义了很多常量字符串,用于作为attributes字典的键,针对于这个接口的键主要包括下面几个:

NSString * const NSFileType;
NSString * const NSFileSize;
NSString * const NSFileModificationDate;
NSString * const NSFileReferenceCount;
NSString * const NSFileDeviceIdentifier;
NSString * const NSFileOwnerAccountName;
NSString * const NSFileGroupOwnerAccountName;
NSString * const NSFilePosixPermissions;
NSString * const NSFileSystemNumber;
NSString * const NSFileSystemFileNumber;
NSString * const NSFileExtensionHidden;
NSString * const NSFileHFSCreatorCode;
NSString * const NSFileHFSTypeCode;
NSString * const NSFileImmutable;
NSString * const NSFileAppendOnly;
NSString * const NSFileCreationDate;
NSString * const NSFileOwnerAccountID;
NSString * const NSFileGroupOwnerAccountID;
NSString * const NSFileBusy;

      本文不打算翻译苹果的官方文档,只把我们比较关心的几个键的意义说明如下:

  • NSFileAppendOnly

      这个键的值需要设置为一个表示布尔值的NSNumber对象,表示创建的目录是否是只读的。

  • NSFileCreationDate

      这个键的值需要设置为一个NSDate对象,表示目录的创建时间。

  • NSFileOwnerAccountName

      这个键的值需要设置为一个NSString对象,表示这个目录的所有者的名字。

  • NSFileGroupOwnerAccountName

      这个键的值需要设置为一个NSString对象,表示这个目录的用户组的名字。

  • NSFileGroupOwnerAccountID

      这个键的值需要设置为一个表示unsigned int的NSNumber对象,表示目录的组ID。

  • NSFileModificationDate

      这个键的值需要设置一个NSDate对象,表示目录的修改时间。

  • NSFileOwnerAccountID

      这个键的值需要设置为一个表示unsigned int的NSNumber对象,表示目录的所有者ID。

  • NSFilePosixPermissions

      这个键的值需要设置为一个表示short int的NSNumber对象,表示目录的访问权限。

  • NSFileReferenceCount

      这个键的值需要设置为一个表示unsigned long的NSNumber对象,表示目录的引用计数,即这个目录的硬链接数。

      这样,通过合理的设计attributes字典中的不同键的值,这个接口所创建的目录的属性就会基本满足我们的需求了。


一. 创建NSFileManager 对象

    NSFileManager很是简单,可以应用如式格式来创建NSFileManager对象。



NSString* fileName=[[NSString alloc] initWithFormat:@"/ISO DeV/File.txt"];

NSFileManager *fileManager=nil;

fileManager=[NSFileManager defaultManager];


 


  二. 断定文件是否存在


    应用fileExistsAtPath断定某个文件是否存在,上方已经所过了,可以应用绝对路径 也可以应用相对路径



if([fileManager fileExistsAtPath:fileName]==YES){

     NSLog(@"该文件存在");

}else{

     NSLog(@"该文件不存在");

}


 


  三. 拷贝文件


    应用函数copyPath:(NSString*) toPath(NSString*) 来拷贝一个文件,拷贝文件可以从头定名一个文件名称



NSString *toFileName=@"/ISO DeV/Test/File1.txt";

        NSLog(@"%d",[fileManager fileExistsAtPath:toFileName]);

        [fileManager copyPath:fileName toPath:toFileName handler:nil];

        if([fileManager fileExistsAtPath:toFileName]==YES){

            NSLog(@"该文件存在");

        }else{

            NSLog(@"该文件不存在");

}


 


  四. 断定文件内容是否相等



if([fileManager contentsEqualAtPath:fileName andPath:toFileName]==YES){

            NSLog(@"文件内容雷同");

        }else{

            NSLog(@"文件内容不一样");

}


 


  五. 重定名文件



NSString *newFileName=@"/ISO DeV/Test/File2.txt";

[fileManager movePath:toFileName toPath:newFileName handler:nil];


 


  六. 获得文件属性



NSDictionary *dic= [fileManager fileAttributesAtPath:newFileName traverseLink:NO];

        for (NSString *key in[dic keyEnumerator]) {

                        

            NSLog(@"====== %@=%@",key,[dic valueForKey:key]);

        }


  应用办法fileAttributesAtPath 获得某个路径下的文件的属性,返回值是一个NSDictionary. 以上代码输出获得如下:



2014-05-02 23:24:23.993 PIOFile[537:303] ====== NSFileOwnerAccountID=501

2014-05-02 23:24:23.993 PIOFile[537:303] ====== NSFileHFSTypeCode=0

2014-05-02 23:24:23.993 PIOFile[537:303] ====== NSFileSystemFileNumber=18447915

2014-05-02 23:24:23.994 PIOFile[537:303] ====== NSFileExtensionHidden=0

2014-05-02 23:24:23.994 PIOFile[537:303] ====== NSFileSystemNumber=16777219

2014-05-02 23:24:23.995 PIOFile[537:303] ====== NSFileSize=38

2014-05-02 23:24:23.995 PIOFile[537:303] ====== NSFileGroupOwnerAccountID=0

2014-05-02 23:24:23.995 PIOFile[537:303] ====== NSFileOwnerAccountName=hechen

2014-05-02 23:24:23.997 PIOFile[537:303] ====== NSFileCreationDate=2014-05-02 14:48:12 +0000

2014-05-02 23:24:23.997 PIOFile[537:303] ====== NSFilePosixPermissions=420

2014-05-02 23:24:23.997 PIOFile[537:303] ====== NSFileHFSCreatorCode=0

2014-05-02 23:24:23.998 PIOFile[537:303] ====== NSFileType=NSFileTypeRegular

2014-05-02 23:24:23.998 PIOFile[537:303] ====== NSFileExtendedAttributes={

    "com.apple.TextEncoding" = <7574662d 383b3133 34323137 393834>;

}

2014-05-02 23:24:23.999 PIOFile[537:303] ====== NSFileGroupOwnerAccountName=wheel

2014-05-02 23:24:23.999 PIOFile[537:303] ====== NSFileReferenceCount=1

2014-05-02 23:24:24.000 PIOFile[537:303] ====== NSFileModificationDate=2014-05-02 15:12:27 +0000


 


  七. 删除文件



[fileManager removeFileAtPath:newFileName handler:nil];


  经由过程办法removeFileAtPath 可以删除文件


 


  八. 获取文件内容



NSString *content=[NSString stringWithContentsOfFile:fileName encoding:NSUTF8StringEncoding error:nil];

        NSLog(@"%@",content);

掌握C#文件属性与操作类的实战应用 在C#中,文件操作类是一组预定义的类,它们提供了一系列方法和属性,使开发者能够执行各种文件系统的操作,包括文件的读写、复制、移动、删除、属性获取与修改等。文件操作类通常位于System.IO命名空间内,是处理文件和目录等I/O操作的核心。文件操作类可大致分为以下几类:文件信息类:如FileInfo,用于获取文件的属性和信息。目录信息类:如,用于获取和操作目录的属性和信息。流类:如FileStream,用于读写文件和目录数据。文件系统访问类:如File。 阅读详情

相关推荐

详细解读文字识别工具———Tesseract-OCR

   在尝试破解12306验证码的时候,提前了解了一下应对各种验证码的解决方案,这里主要是学习到了面对文字图片验证码,例如亚马逊、豆瓣等平台的登录时会遇到的情况,效果还不错。 一、工具介绍 ​    Tesseract-OCR 是一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition...

别看我只是一只羊 2万+

Objective-C创建目录接口createDirectoryAtPath:withIntermediateDirectories:attributes:error:中参数attributes的设置

在应用程序执行时,经常需要本地化保存一些重要的数据,这时就有可能需要创建一些目录。Objective-C提供了一个非常强大的创建目录的接口: - (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary

wanganqi19920813的专栏 6038

ANSYS APDL齿轮建模实战:从渐开线方程到完整3D模型的保姆级教程

本文详细介绍了使用ANSYS APDL进行齿轮建模的全过程,从渐开线方程的数学基础到完整3D模型的创建。通过参数化命令流实现高精度齿轮建模,特别适合机械设计和仿真分析需求。教程包含关键参数计算、APDL环境配置、单齿齿廓建模以及全齿轮阵列复制等实用技巧,帮助工程师快速掌握ANSYS APDL在齿轮建模中的应用。

lg888的博客 445

创建文件夹

createDirectoryAtPath:withIntermediateDirectories:attributes:error:Creates a directory with given attributes at a specified path.- (BOOL)cre

SlimApp 849

Ubuntu 22.04 实战:为WIFI6网卡Realtek RTL8852BE手动编译驱动指南

本文详细介绍了在Ubuntu 22.04系统上为Realtek RTL8852BE WIFI6网卡手动编译驱动的完整指南。从问题诊断、环境准备到源码获取、编译安装,逐步解决驱动缺失问题,并提供常见问题排查和性能优化建议,帮助用户充分发挥WIFI6网卡性能。

weixin_30808693的博客 478

Spring AI 实战:5 分钟搭建你的第一个 AI 应用(含完整代码)

能力关键 API适用场景基础对话简单问答、文本生成流式输出实时打字机效果@Bean模型需要调用外部工具结构化输出需要返回 Java 对象多轮对话聊天机器人场景Spring AI 让 Java 开发者可以用最熟悉的方式(Spring Boot + Maven)进入 AI 应用开发领域,不用学新语言,不用换框架,这是它最大的优势。但目前为止,我们的 AI 应用只能回答"它脑子里已有的知识"。如果让它读懂你自己的技术文档、公司内部知识库呢?这就是下一篇文章的主题——RAG(检索增强生成)实战。

qq_17204557的博客 642

iOS 的目录操作基础

<br />1、文件管理类:NSFileManager<br />     常用接口:<br />     1.1 fileExistsAtPath 判断文件是否存在<br />     1.2 fileAttributesPath 判断文件夹属性,可读/可写<br />     1.3 copyPath 从一个目录拷贝一个文件到另外一个目录<br />     1.4 movePath 从一个目录转到文件到另外一个目录<br />     1.5 removeFileAtPath 删除指定目录中的文件<b

骑驴走天下 的专栏 6954

从CTF到实战:Frida Hook无导出SO函数的3种特殊姿势

本文深入探讨了在移动安全逆向工程中,如何利用Frida Hook无导出SO函数的三种高级技巧:字符串引用定位法、调用栈回溯法和内存特征码扫描。针对安卓So层加固和混淆场景,文章结合CTF赛题与实战案例,详细解析了每种方法的原理、实现步骤与适用场景,为安全研究人员提供了从理论到实践的完整解决方案。

jenkins8butler的博客 515

路由交换器

StorageData.m // // StorageData.m // xunYi7 // // Created by david on 13-6-28. // Copyright © 2013年 david. All rights reserved. // #import <CommonCrypto/CommonDigest.h> #import “StorageData.h” #import “xunYi7AppDelegate.h” @implementation StorageData

weixin_52575791的博客 200

MatLab Desired port was :31515解决方案

前言:使用的MatLabR2022b今天突然出现了错误,在程序中打不开文件。后尝试了下面的方法,可以解决。后面还有另一种方法,上面方法如果行不通,大家可以尝试一下。搜索栏输入:firewall.cpl。找到相关项,右键属性,设置为允许。

qq_42212501的博客 1338

Buck电源设计常见的一些问题(一)半桥栅极驱动芯片共性失效问题

半桥驱动芯片主要用在器件可应用于电信,数据通信,便携式存储或更低电压系统中的电源转换器,半桥、全桥、推挽、同步降压,正激变换器和同步整流器等方面。当然难免会遇到不少问题。基本上我们在产品开发的过程中都遇到过栅极驱动芯片坏掉的情况,所以找了一些资料,学习学习。也查找查找原因。

小幽余生不加糖 2369

iphone 文件操作

<br />1:createDirectoryAtPath  创建目录 <br /> <br />- (bool)createPath:(NSString *)fileName <br />{ <br />NSArray  *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); <br />NSString *documentDirectory = [paths objectAtInd

tandhi的专栏 697

基于Pascal VOC数据集的YOLOv8目标检测系统实现:人、鸟、猫、牛、电视、车等20类目标识别与UI界面部署全流程详解

VOC 2007、VOC 2012 两个主要版本;每个图像提供 bounding box(目标框)+ 目标类别;共计 20 类,所有图像手工标注,质量高。完整复现 Pascal VOC 20类检测任务成功训练 YOLOv8 模型实现可视化 UI + 实时检测系统支持多平台部署和演示。

YOLO 771

Linux目录操作&文件属性

目录操作&文件属性学习记录

Charary的博客 1160

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

文件属性与目录操作

本文介绍了Linux系统编程中目录操作和文件属性的相关函数。主要内容包括:1)目录操作函数如getcwd获取当前路径、chdir切换路径、mkdir创建目录、opendir/readdir/closedir操作目录;2)文件属性获取函数stat/lstat/fstat及其返回的stat结构体;3)文件类型判断的两种方法:使用宏定义或类型掩码;4)文件权限获取的实现;5)结合目录操作和文件属性实现类似"ls -l"功能的完整代码示例。这些函数可用于开发需要处理文件和目录的系统程序。

m0_74095358的博客 931

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

文件属性及目录操作

本文介绍了Linux系统下目录和文件操作的相关函数。目录操作部分包括获取当前路径(getcwd)、切换目录(chdir)、创建目录(mkdir)、更改权限(chmod)、打开/读取/关闭目录(opendir/readdir/closedir)等函数的使用方法和示例。文件属性部分详细讲解了stat结构体各字段含义,以及stat/lstat/fstat函数获取文件属性的方法,并提供了判断文件类型(Get_File_Type1/File_Type)和获取文件权限(File_Mode)的具体实现代码。这些系统调用函

m0_74236250的博客 1337

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

操作系统文件属性

rmp -qf 路径或者rpm -qf `which tree`访问时间 修改时间(改内容) 改变时间(文件属性发生改变)这个数据库包含了文件系统中所有文件和目录的路径信息。find ~ -name "*a*" #用*号代替不知道的。一个文件多个用户管理,可以将多个用户划分到同一管理组。+代表大于、-代表小于 需要带单位:c字节 k M。-path "要忽略的目录" -prune。yum provides 命令。:指定数据库文件的输出路径。:指定要排除的目录路径。:指定要排除的目录路径。

2301_77656309的博客 1821

文件属性获取及目录操作

返回值:包含文件信息的结构体,出错或者读到目录流末尾返回NULL。返回值:成功返回包含路径空间的字符串首地址,失败返回NULL。功能:从目录流中读取文件信息并将保存信息的结构体地址返回。返回值:成功返回目录流指针,失败返回NULL。返回值:成功返回0,失败返回 - 1。功能:打开一个目录获得一个目录流指针。返回值:成功返回0,失败返回 - 1。返回值:成功返回0,失败返回 - 1。返回值:成功返回0,失败返回 - 1。返回值:成功返回0,失败返回 - 1。功能:获得当前的工作路径。功能:获得文件的属性。

qq_69639971的博客 1109

文件属性、目录操作

读取目录及文件属性的基本操作

hallocounty的博客 212

Linux实验三:文件属性及目录操作

Linux程序设计实验三:文件属性及目录操作。

Morse_Chen的博客 1021

【Linux文件IO】Linux中文件属性与目录操作的API介绍和用法

在应用开发中,经常要获取文件的属性,例如:文件的类型、大小、权限、设备号、最近修改时间等等,比如网络传输文件时,一般都需要先传递文件的属性,等准备妥善了再开始传输文件的真实内容。因此,熟悉文件属性的细节,并熟练获取这些信息的方式至关重要。

qq_62917398的博客 1208

文件属性及其目录操作

1、文件属性的操作 我们可以使用这几个函数获取到文件状态信息 SYNOPSIS        #include &lt;sys/types.h&gt;        #include &lt;sys/stat.h&gt;        #include &lt;unistd.h&gt;          int stat(const char *path, struct stat *...

weixin_41723504的博客 533

Linux中的 文件属性获取 以及 目录操作

注意:与前面的 一、Linux中的文件属性获取 首先先了解一下Linux中存放 文件属性 的结构体: 接下来再来了解一下对应的Linux中系统提供的对应获取文件信息的接口函数:(在linux中可以使用 man 2 stat查看详细手册) 头文件: #include <sys/types.h> #include <sys/stat.h> #includ...

不吃鱼的猫的博客 950

目录操作和文件属性

【代码】目录操作和文件属性。

总结和收藏 215

linux--文件属性、目录的操作

记住linux里面, 一般失败了返回都是-1,这一点和windows里面不太一样。

hyd_ashely的博客 303
上一篇: ios即时通讯客户端开发之-mac上搭建openfire服务器
下一篇: block与dispatch_queue
focusjava
博客等级 码龄14年 127粉丝 528原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值