NSFileManager和檔案的判斷操作、獲取目錄、檔案建立和目錄建立。
/*首先,建立NSFileManagment物件,
*接著,將ceshi資料夾拖到桌面上使用。可以下載ceshi檔案百度網盤:http://pan.baidu.com/s/1mgms8SK
*==============判斷操作=============
*
* 1)判斷是檔案或資料夾是否存在
* 2) 判斷是檔案還是目錄
* 3)判斷是否可讀
* 4)判斷是否可寫
* 5)判斷是否可刪除
*
* 對應下面的 isOK() 方法
*
*
*++++++++++++++獲取目錄方式++++++++++++++
*
* 1)獲取指定路徑下,所有的檔案或者資料夾路徑
* 2)獲取指定路徑下,所有的檔案、資料夾、該資料夾的子資料夾和子檔案路徑
*
* 對應下面的 getDirectory() 方法
*
*
*^^^^^^^^^^^^^^檔案建立和目錄建立^^^^^^^^^^^^^^
*
* 1)檔案建立
* 2)獲得檔案屬性方式
* 3)目錄建立,
* 4)拷貝檔案
* 5)移動檔案
* 6)刪除檔案
*
* 對應下面的 creatAndOptions()
*/
/*首先,建立NSFileManagment物件,
*接著,將ceshi資料夾拖到桌面上使用。
*==============判斷操作=============
*
* 1)判斷是檔案或資料夾是否存在
* 2) 判斷是檔案 還是目錄
* 3)判斷是否可讀
* 4)判斷是否可寫
* 5)判斷是否可刪除
*
* 對應下面的 isOK() 方法
*
*
*++++++++++++++獲取目錄方式++++++++++++++
*
* 1)獲取指定路徑下,所有的檔案或者資料夾路徑
* 2)獲取指定路徑下,所有的檔案、資料夾、該資料夾的子資料夾和子檔案路徑
*
* 對應下面的 getDirectory() 方法
*
*
*^^^^^^^^^^^^^^檔案建立和目錄建立^^^^^^^^^^^^^^
*
* 1)檔案建立
* 2)獲得檔案屬性方式
* 3)目錄建立,
* 4)拷貝檔案
* 5)移動檔案
* 6)刪除檔案
*
* 對應下面的 creatAndOptions()
*/
#import <Foundation/Foundation.h>
//1判斷操作宣告
void isOK();
//2獲取目錄方式
void getDirectory();
//3檔案建立和操作
void creatAndOptions();
/*檔案來回移動時用到的全域性變數。
檔案存在的時候,將拷貝的目標檔案刪除掉使用。
*/
NSInteger flag;
int main(int argc, const char * argv[]) {
@autoreleasepool {
//1 isOK()函式執行
// isOK();
//2 getDirectory()函式執行
// getDirectory();
//3 creatAndOptions()函式執行
creatAndOptions();
}
return 0;
}
#pragma mark========判斷操作==========
void isOK(){
//建立NSFileManager物件 ===>>下面建立的是單例物件,
NSFileManager *fm = [NSFileManager defaultManager];
//拼接一個檔案路徑
NSString *path = @"/Users/這裡要變成你的使用者名稱/Desktop/.DS_Store";
//NSString *str = @"/Users/這裡要變成你的使用者名稱/Desktop";
//1)判斷是檔案是否存在 (主要是看路徑指的是目錄還是檔案)
BOOL isYes;
isYes = [fm fileExistsAtPath:path];
if (isYes) {
NSLog(@"檔案目錄或檔案存在 ");
}else{
NSLog(@"檔案目錄獲檔案不存在 ");
}
//2)判斷是檔案還是目錄
BOOL isDir;
#warning 和上面的 fileExistAtPath: 要區分開;
[fm fileExistsAtPath:path isDirectory:&isDir];
if (isDir) {
NSLog(@"這是個****資料夾****");
}else{
NSLog(@"這是個****檔案**** ");
}
//3)判斷檔案是否可讀
BOOL isRead;
isRead = [fm isReadableFileAtPath:path];
if (isRead) {
NSLog(@"這個檔案或者資料夾++++可讀++++ ");
}else{
NSLog(@"這個檔案或者資料夾++++不可讀++++");
}
//4)檔案是否可寫
BOOL isWrite;
isWrite = [fm isWritableFileAtPath:path];
if (isWrite) {
NSLog(@"這個檔案或者資料夾----可寫----");
}else{
NSLog(@"這個檔案或者資料夾----不可寫----");
}
//5)檔案是否可刪
BOOL isDel;
isDel = [fm isDeletableFileAtPath:path];
if (isDel) {
NSLog(@"這個檔案或者資料夾^^^^可刪^^^^");
}else{
NSLog(@"這個檔案或者資料夾^^^^不可刪^^^^");
}
}
#pragma mark+++++++獲取目錄方式++++++++
void getDirectory(){
//建立NSFileManager物件
NSFileManager *fm = [NSFileManager defaultManager];
//定義路徑
// NSString *path = @"/Users/這裡要變成你的使用者名稱/Desktop";
//自己在桌面建立了ceshi資料夾,進行的測試
NSString *path [email protected]"/Users/這裡要變成你的使用者名稱/Desktop/ceshi";
//1)獲取指定路徑下,所有的檔案或者資料夾路徑
NSError *errDir = nil;
NSArray *contents = [fm contentsOfDirectoryAtPath:path error:&errDir];
if (nil == errDir) {
NSLog(@"獲得目錄下檔案以及資料夾\n %@",contents);
}else{
NSLog(@"目錄獲得失敗\n 錯誤: %@",errDir);
}
//2)獲取指定路徑下,所有的檔案、資料夾、該資料夾的子資料夾和子檔案路徑
//方式一:以遞迴方式來獲取。(不推薦使用,因為在手機上可能會佔記憶體)
NSArray *subPathAtPathReturnArray = [fm subpathsAtPath:path];
NSLog(@"以遞迴方式獲取\n %@",subPathAtPathReturnArray);
//方式二:非遞迴方式來獲取
NSError *errSubPath = nil;
NSArray *subPathOfDirectoryReturnArray = [fm subpathsOfDirectoryAtPath:path error:&errSubPath];
if (nil == errSubPath) {
NSLog(@"非遞迴方式獲取\n %@",subPathOfDirectoryReturnArray);
}else{
NSLog(@"獲取失敗");
}
}
#pragma mark^^^^^檔案建立和目錄建立^^^^^
void creatAndOptions(){
//建立NSFileManager物件
NSFileManager *fm = [NSFileManager defaultManager];
//定義路徑(這裡面要有該路徑,而且要帶著你要寫入檔案的檔名。)
NSString *path [email protected]"/Users/這裡要變成你的使用者名稱/Desktop/ceshi/youyi.txt";
#warning 如果檔案沒有存在,檔案建立和獲取檔案屬性不能通時進行。
//1檔案建立
//1)要儲存在檔案的內容
NSString *contentStr = @"每當我錯過一個女孩,我就往山上放一塊磚,於是乎有了長城";
//2)把字串轉化為data型別 (目的:用來存放到檔案中)
NSData *data = [contentStr dataUsingEncoding:NSUTF8StringEncoding];
//3)建立檔案
BOOL isCtreat;
isCtreat = [fm createFileAtPath:path contents:data attributes:nil];
if (isCtreat) {
NSLog(@"檔案建立###成功###");
}else{
NSLog(@"檔案建立###失敗###");
}
//2獲取檔案屬性
NSError *errAttrbute = nil;
//自己建立的ceshi/11.txt檔案
NSString *pathAttribute = @"/Users/這裡要變成你的使用者名稱/Desktop/ceshi/attribute.txt";
NSDictionary *fileAttribute = [fm attributesOfItemAtPath:pathAttribute error:&errAttrbute];
if (nil == errAttrbute) {
NSLog(@"檔案屬性獲得成功,屬性內容如下\n %@",fileAttribute);
}else{
NSLog(@"檔案屬性獲得失敗");
}
//3 目錄的建立 withIntermediateDirectories--是否補上沒有的資料夾目錄
BOOL isCreDirAt;
NSString *pathCreDirAt = @"/Users/這裡要變成你的使用者名稱/Desktop/ceshi/creatDirecr/";
NSError *errorDirectory = nil;
isCreDirAt = [fm createDirectoryAtPath:pathCreDirAt withIntermediateDirectories:YES attributes:nil error:&errorDirectory];
if (isCreDirAt) {
NSLog(@"資料夾建立成功");
}else{
NSLog(@"資料夾建立失敗,失敗原因:%@",errorDirectory);
}
//4 拷貝檔案 (當目標路徑已經有拷貝的檔案時,這時提示拷貝錯誤。)
BOOL isCopy;
NSError *errorCopy = nil ;
//原始檔路徑
NSString *sourcePath = @"/Users/這裡要變成你的使用者名稱/Desktop/ceshi/copy.txt";
//目標檔案路徑
NSString *targerPath = @"/Users/這裡要變成你的使用者名稱/Desktop/ceshi/bbbb/copy.txt";
isCopy = [fm copyItemAtPath:sourcePath toPath:targerPath error:&errorCopy];
if (isCopy) {
NSLog(@"拷貝成功");
}else{
NSLog(@"拷貝出錯,出錯內容: %@",errorCopy);
if ([fm fileExistsAtPath:targerPath]) {
BOOL isExistsDel;
NSError *errorExistDirDel;
isExistsDel = [fm removeItemAtPath:targerPath error:&errorExistDirDel];
if (isExistsDel) {
NSLog(@"刪除成功");
}else{
NSLog(@"刪除失敗 %@",errorExistDirDel);
}
}
}
//5 移動檔案
BOOL isMove;
NSError *errorMove;
NSString *sourcePathMove = @"/Users/這裡要變成你的使用者名稱/Desktop/ceshi/move.txt";
//目標檔案路徑
NSString *targerPathMove = @"/Users/這裡要變成你的使用者名稱/Desktop/ceshi/bbbb/move.txt";
if ([fm fileExistsAtPath:sourcePathMove]) {
isMove = [fm moveItemAtPath:sourcePathMove toPath:targerPathMove error:&errorMove];
if (isMove) {
NSLog(@"移動檔案成功,移動路徑為: %@",targerPathMove);
}else{
NSLog(@"檔案移動失敗,失敗原因 %@",errorMove);
}
}else{
isMove = [fm moveItemAtPath:targerPathMove toPath:sourcePathMove error:&errorMove];
if (isMove) {
NSLog(@"移動檔案成功,移動路徑為: %@",targerPathMove);
}else{
NSLog(@"檔案移動失敗,失敗原因 %@",errorMove);
}
}
//6 刪除檔案
BOOL isDirDel;
NSError *errorDirDel;
NSString *delete = @"/Users/這裡要變成你的使用者名稱/Desktop/ceshi/delete.txt";
isDirDel = [fm removeItemAtPath:delete error:&errorDirDel];
if (isDirDel) {
NSLog(@"刪除成功");
}else{
NSLog(@"刪除失敗 %@",errorDirDel);
NSString *deletPath = @"/Users/這裡要變成你的使用者名稱/Desktop/ceshi/delete.txt";
//1)要儲存在檔案的內容
NSString *contentStr = @"每當我錯過一個女孩,我就往山上放一塊磚,於是乎有了長城";
//2)把字串轉化為data型別 (目的:用來存放到檔案中)
NSData *data = [contentStr dataUsingEncoding:NSUTF8StringEncoding];
//3)建立檔案
BOOL isCtreat;
isCtreat = [fm createFileAtPath:deletPath contents:data attributes:nil];
if (isCtreat) {
NSLog(@"DeletPath檔案建立###成功###");
}else{
NSLog(@"DeletPath檔案建立###失敗###");
}
}
}
相關推薦
Javascript入門(二)變量、獲取元素、操作元素
javascrip ima 報錯 nload change -c win attribute ttr 一、變量 Javascript 有五種基本數據類型 number、String、boolean、undefined、null 一種復合類型:object
第十三章 對文本進行排序、單一和重復操作:sort命令、uniq命令
對文本進行排序、單一和重復操作 sort命令 uniq命令 第十三章 對文本進行排序、單一和重復操作:sort命令、uniq命令 sort命令 名字解釋 sort命令 它將文件進行排序,並將排序結果標準輸出。sort命令即可以從特定的文件,也可以從stdin中獲取輸入。 語法 sort (選項)
JavaScript的函式(定義與解析、匿名函式、函式傳參、return關鍵字)和陣列(操作資料的方法、多維陣列、陣列去重)
函式 函式就是重複執行的程式碼片。 1、函式定義與執行 <script type="text/javascript"> // 函式定義 function aa(){ alert('hello!'); } // 函式執行
Python 讀取檔案下所有內容、獲取檔名、擷取字元、寫回檔案
Python 讀取檔案下所有內容、獲取檔名、擷取字元、寫回檔案 # coding=gbk import os import os.path #讀取目錄下的所有檔案,包括巢狀的資料夾 def GetFileList(dir, fileList): newDir = dir
【Java工具十二】java 身份證驗證,包含香港和臺灣,根據身份證獲取性別、戶籍等
package com.xxx.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.D
PHP根據身份證號碼驗證、獲取星座、生肖和性別函式
首先介紹一下身份證含義 新的18位身份證號碼各位的含義: 1-2位省、自治區、直轄市程式碼; 3-4位地級市、盟、自治州程式碼; 5-6位縣、縣級市、區程式碼; 7-14位出生年月日,比如19670401代表1967年4月1日; 15-17位為順序號,其中17位男為單數,
JSP實現檔案上傳下載和刪除(附:JS獲取上傳檔案的檔名)
1.檔案上傳 直接複製專案了,你們有需要的自己看著改吧 表單部分截圖 (新增分類按鈕可忽略) jsp頁面html部分 <form action="" id="form" enctype="multipart/form-data" method="post">
檔案基本操作之獲取資料夾下的所有子資料夾及其名稱
獲取資料夾下的所有子資料夾及其名稱: 用到的主要控制元件:TextBox,FolderBrowserDialog,Button,TreeView等。 相關程式碼: private string temStr; Thread thdAddF
c++對檔案進行操作之遍歷雙層檔案結構
/*本程式碼實現遍歷雙層次層次的目錄結構*/ #include<stdio.h> #include<iostream> #include<io.h> #include<cstring> using namespace std; const ch
AJAX、獲取節點 、[object HTMLInputElement]
問題描述: 1、我想把一個JSP頁面的表單裡的資料,用AJAX非同步提交給資料庫。結果資料庫不改變。 2、第二個問題,我舉個例子在js中的程式碼: <input type="sumbit" name="" id="china"> <script>
vue 父元件主動獲取子元件的資料和方法 子元件主動獲取父元件的資料和方法
Header.vue 1 <template> 2 3 4 <div> 5 6 <h2>我是頭部元件</h2> 7 8 9 <button @click="
離線快取manifest、獲取經緯度、獲取地圖
一.離線快取manifest作用:伺服器開啟執行一次後,斷開伺服器也能顯示資訊1.建立demo.manifest檔案編輯的內容如下,放在同級目錄或則其他可訪問的位置即可程式碼: CACHE MANIFEST #v1.0.0 CACHE: img/1.png demo14.html 2
java學習路程(javaEE)之獲取表單資料、獲取引數、request域、會話技術(Cookie)
一.獲取表單資料 //設定瀏覽器資料格式 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOExcept
go提交json、獲取json、解析json
猜你喜歡 一、提交json func main() { url := "http://restapi3.apiary.io/notes" fmt.Println("URL:>", url) var jsonStr = []byte
MUI-numbox(數字輸入框),最小值、最大值、步長、獲取值、設定值、重定義
本文主要介紹numbox(數字輸入框),最小值、最大值、步長、獲取值、設定值、重定義功能 mui提供了數字輸入框控制元件,可直接輸入數字,也可以點選“+”、“-”按鈕變換當前數值;預設numbox控制元件dom結構比較簡單,如下: <div class="mui-numbox"&g
vue專案登陸設定cookie、獲取cookie 、刪除 cookie
1.定義方法到儲存全域性變數 的 global.js 檔案中 設定 domain 值 const domain= ’ 域名 ‘; 設定該cookie只對 改域名生效 //設定cookie
NSFileManager和檔案的判斷操作、獲取目錄、檔案建立和目錄建立。
/*首先,建立NSFileManagment物件, *接著,將ceshi資料夾拖到桌面上使用。可以下載ceshi檔案百度網盤:http://pan.baidu.com/s/1mgms8SK *==============判斷操作============= * *
Qt總結之三:磁碟檔案操作、遍歷資料夾和檔案目錄,並過濾和獲取檔案資訊、字尾名、字首名(三)
前言 本節內容主要包括磁碟容量檢測、磁碟內指定或特定檔案的操作 話不多說,先上效果圖 共分為兩個部分,第一部分是檢測磁碟容量,第二部分是篩選磁碟內指定檔案(test.txt)或特定檔案(.txt / .png型別檔案) 獲取磁碟容量關鍵函式:【fileapi.h】 
Qt總結之二:遍歷資料夾和檔案目錄,並過濾和獲取檔案資訊、字尾名、字首名(二)
前言 需要在特定目錄或磁碟下查詢特定檔案 一、篩選目錄 (一)單一目錄下遍歷,篩選特定檔案 QDir dir("./SaveFiles"); QFileInfoList list = dir.entryInfoList(); (二)裝置所有磁碟中遍歷 QF
Qt總結之一:遍歷資料夾和檔案目錄,並過濾和獲取檔案資訊、字尾名、字首名(一)
一、採用遞迴和QDir實現資料夾下所有檔案遍歷的方法 #include <QDir> bool FindFile(const QString & path) { QDir dir(path); if (!dir.exists(