iOS 文件操作

来源:互联网 发布:医院网络客服工作职责 编辑:程序博客网 时间:2024/06/07 19:39

ios文件管理 获取文件属性读取文件


1、文件的创建

- (IBAction)CreateFile

{

    //对于错误信息

    NSError *error;

    //创建文件管理器

    NSFileManager *fileMgr = [NSFileManager defaultManager];

    //指向文件目录

    NSString *documentsDirectory= [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];

    

    //创建一个目录

    [[NSFileManager defaultManager]   createDirectoryAtPath: [NSString stringWithFormat:@"%@/myFolder", NSHomeDirectory()] attributes:nil];

    

    // File we want to create in the documents directory我们想要创建的文件将会出现在文件目录中

    // Result is: /Documents/file1.txt结果为:/Documents/file1.txt

    NSString *filePath= [documentsDirectory stringByAppendingPathComponent:@"file2.txt"];

   // 需要写入的字符串

    NSString *str= @"iPhoneDeveloper Tipsnhttp://iPhoneDevelopTips,com";

    //写入文件

    [str writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];

   // 显示文件目录的内容

    NSLog(@"%@", [Documentsdirectory contentsOfDirectoryAtPath:documentsDirectory error:&error]);

}


2、对文件重命名

对一个文件重命名

想要重命名一个文件,我们需要把文件移到一个新的路径下。下面的代码创建了我们所期望的目标文件的路径,然后请求移动文件以及在移动之后显示文件目录。

//通过移动该文件对文件重命名

NSString *filePath2 = [documentsDirectory stringByAppendingPathComponent:@"file2.txt"];

//判断是否移动

if ([fileMgr moveItemAtPath:filePath toPath:filePath2 error:&error] != YES)

{

    NSLog(@"Unable to move file: %@", [error localizedDescription]);

   // 显示文件目录的内容

    NSLog(@"Documentsdirectory: %@",[fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);

}

          

3、删除一个文件

为了使这个技巧完整,让我们再一起看下如何删除一个文件:

//filePath2中判断是否删除这个文件

if ([fileMgr removeItemAtPath:filePath2 error:&error] != YES)

{

    NSLog(@"Unable to delete file: %@", [error localizedDescription]);

   // 显示文件目录的内容

    NSLog(@"Documentsdirectory: %@",[fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);

}


一旦文件被删除了,正如你所预料的那样,文件目录就会被自动清空:

这些示例能教你的,仅仅只是文件处理上的一些皮毛。想要获得更全面、详细的讲解,你就需要掌握NSFileManager文件的知识。


4、删除目录下所有文件

//获取文件路径

- (NSString *)attchmentFolder

{

    NSString *document = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

    NSString *path = [document stringByAppendingPathComponent:@"Attchments"];

              

    NSFileManager *manager = [NSFileManager defaultManager];

              

    if(![manager contentsOfDirectoryAtPath:path error:nil])

    {

        [manager createDirectoryAtPath:path withIntermediateDirectories:NO attributes:nil error:nil];

    }

              

    return path;

}


//清除附件

BOOL result = [[NSFileManager defaultManager] removeItemAtPath:[[MOPAppDelegate instance] attchmentFolder] error:nil];

          

5、获得文件的属性

- (void)getFileAttributes

{

    NSFileManager *fileManager = [NSFileManager defaultManager];

    NSString *path = @"/1ct.rtf";

    NSDictionary *fileAttributes = [fileManager fileAttributesAtPath:path traverseLink:YES];

    NSLog(@"@@");

    if (fileAttributes != nil)

    {

        NSNumber *fileSize;

        NSString *fileOwner, *creationDate;

        NSDate *fileModDate;

        // NSString *NSFileCreationDate

        //文件大小

        if (fileSize = [fileAttributes objectForKey:NSFileSize])

        {

            NSLog(@"File size: %qin", [fileSize unsignedLongLongValue]);

        }

        //文件创建日期

        if (creationDate = [fileAttributes objectForKey:NSFileCreationDate])

        {

            NSLog(@"File creationDate: %@n", creationDate);

            // textField.text=NSFileCreationDate;

        }

        //文件所有者

        if (fileOwner = [fileAttributes objectForKey:NSFileOwnerAccountName])

        {

            NSLog(@"Owner: %@n", fileOwner);

        }

        //文件修改日期

        if (fileModDate = [fileAttributes objectForKey:NSFileModificationDate])

        {

            NSLog(@"Modification date: %@n", fileModDate);

        }

    }

    else

    {

        NSLog(@"Path (%@) is invalid.", path);

    }

}


//日期格式化

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateStyle:NSDateFormatterMediumStyle];

[dateFormatter setTimeStyle:NSDateFormatterNoStyle];

          

//数字格式化

NSNumberFormatter *numberFormatter =[[NSNumberFormatter alloc] init];

[numberFormatter setPositiveFormat: @"#,##0.## bytes"];

          

//获取文件属性

NSDictionary *fileAttributes =[[NSFileManager defaultManager] fileAttributesAtPath: directoryPath traverseLink: YES];

          

//获取文件的创建日期

NSDate *modificationDate = (NSDate*)[fileAttributes objectForKey: NSFileModificationDate];

          

//获取文件的字节大小

NSNumber *fileSize = (NSNumber*)[fileAttributes objectForKey: NSFileSize];

          

//格式化文件大小

nsstring A = [numberFormatter stringFromNumber: fileSize];

          

//格式化文件创建日期

NSstring B =[dateFormatter stringFromDate: modificationDate];

          

//内存管理

[numberFormatter release];

[dateFormatter release];


6、读取文件内容操作

- (void)loadFileContentsIntoTextView

{

   // 通过流打开一个文件

    NSInputStream *inputStream = [[NSInputStream alloc] initWithFileAtPath: filePath];

    [inputStream open];

        

    NSInteger maxLength = 128;

    uint8_t readBuffer [maxLength];

   // 是否已经到结尾标识

    BOOL endOfStreamReached = NO;

    // NOTE: this tight loop will block until stream ends

    while (! endOfStreamReached)

    {

        NSInteger bytesRead = [inputStream read: readBuffer maxLength:maxLength];

        if (bytesRead == 0)

        {

            //文件读取到最后

            endOfStreamReached = YES;

        }

        else if (bytesRead == -1)

        {

            //文件读取错误

            endOfStreamReached = YES;

        }

        else

        {

            NSString *readBufferString =[[NSString alloc] initWithBytesNoCopy: readBuffer length: bytesRead encoding: NSUTF8StringEncoding freeWhenDone: NO];

            //将字符不段的加载到视图

            [self appendTextToView: readBufferString];

            [readBufferString release];

        }

    }

    [inputStream close];

    [inputStream release];

}

0 0
原创粉丝点击