回答
我這樣做,通過以下方式:
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"/MyFolder"];
if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
[[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]; //Create folder
我不喜歡 「[路徑objectAtIndex:0]」,因爲如果蘋果增加了一個新的文件夾以 「A」 開始, 「B」 奧得「C 「,」文檔「 - 文件夾不是目錄中的第一個文件夾。
更好:
NSString *dataPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/MyFolder"];
if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
[[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]; //Create folder
查看Tim的回答。使用NSSearchPathForDirectoryiesInDomains是檢索用戶Documents目錄的標準方式。 – 2011-03-18 01:11:12
如果Apple決定將文檔目錄重命名爲「我的文檔」(或類似文檔),那麼您的方法也無效。 – Mehlyfication 2014-12-05 08:01:58
我沒有足夠的聲譽對曼尼的回答發表評論,但[路徑objectAtIndex:0]是獲取應用程序的文件目錄的標準方式
因爲NSSearchPathForDirectoriesInDomains 功能原本是爲 Mac OS X,其中可能有比這些目錄中的每一個更多的 , 它比單個路徑返回路徑數組而不是 。在iOS中, 生成的數組應包含目錄的單一路徑 。清單 3-1顯示了這個 函數的典型用法。
清單3-1獲取路徑 應用程序的Documents目錄
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
我認爲檢索文檔目錄路徑的最簡單方法是:'NSString * path = [@「〜/ Documents」stringByExpandingTildeInPath];' – 2014-07-21 12:15:38
這工作對我很好,
NSFileManager *fm = [NSFileManager defaultManager];
NSArray *appSupportDir = [fm URLsForDirectory:NSDocumentsDirectory inDomains:NSUserDomainMask];
NSURL* dirPath = [[appSupportDir objectAtIndex:0] URLByAppendingPathComponent:@"YourFolderName"];
NSError* theError = nil; //error setting
if (![fm createDirectoryAtURL:dirPath withIntermediateDirectories:YES
attributes:nil error:&theError])
{
NSLog(@"not created");
}
它應該是NSDocumentDirectory而不是NSDocumentsDirectory – 2017-09-30 05:34:11
下面的代碼創建目錄可能會有幫助:
-(void) createDirectory : (NSString *) dirName {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Fetch path for document directory
dataPath = (NSMutableString *)[documentsDirectory stringByAppendingPathComponent:dirName];
NSError *error;
if (![[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]) {
NSLog(@"Couldn't create directory error: %@", error);
}
else {
NSLog(@"directory created!");
}
NSLog(@"dataPath : %@ ",dataPath); // Path of folder created
}
用法:
[self createDirectory:@"MyFolder"];
結果:
目錄中創建!
數據路徑:在/ var /移動/應用/ BD4B5566-1F11-4723-B54C-F1D0B23CBC /文檔/ MyFolder中
夫特1.2和iOS 8
創建定製目錄(名稱= 「MyCustomData」 )只在目錄不存在的情況下。
// path to documents directory
let documentDirectoryPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first as! String
// create the custom folder path
let myCustomDataDirectoryPath = documentDirectoryPath.stringByAppendingPathComponent("/MyCustomData")
// check if directory does not exist
if NSFileManager.defaultManager().fileExistsAtPath(myCustomDataDirectoryPath) == false {
// create the directory
var createDirectoryError: NSError? = nil
NSFileManager.defaultManager().createDirectoryAtPath(myCustomDataDirectoryPath, withIntermediateDirectories: false, attributes: nil, error: &createDirectoryError)
// handle the error, you may call an exception
if createDirectoryError != nil {
println("Handle directory creation error...")
}
}
的夫特2溶液:
let documentDirectoryPath: String = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first!
if !NSFileManager.defaultManager().fileExistsAtPath(documentDirectoryPath) {
do {
try NSFileManager.defaultManager().createDirectoryAtPath(documentDirectoryPath, withIntermediateDirectories: false, attributes: nil)
} catch let createDirectoryError as NSError {
print("Error with creating directory at path: \(createDirectoryError.localizedDescription)")
}
}
夫特3解決方案:
private func createImagesFolder() {
// path to documents directory
let documentDirectoryPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first
if let documentDirectoryPath = documentDirectoryPath {
// create the custom folder path
let imagesDirectoryPath = documentDirectoryPath.appending("/images")
let fileManager = FileManager.default
if !fileManager.fileExists(atPath: imagesDirectoryPath) {
do {
try fileManager.createDirectory(atPath: imagesDirectoryPath,
withIntermediateDirectories: false,
attributes: nil)
} catch {
print("Error creating images folder in documents dir: \(error)")
}
}
}
}
夫特3.0
var error: Error?
var paths: [Any] = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
var documentsDirectory: String = paths[0] as? String ?? ""
// Get documents folder
var dataPath: String = URL(fileURLWithPath: documentsDirectory).appendingPathComponent("/MyFolder").absoluteString
if !FileManager.default.fileExists(atPath: dataPath) {
try? FileManager.default.createDirectory(atPath: dataPath, withIntermediateDirectories: false, attributes: nil)
}
第
- 1. 創建文件到應用程序文檔文件夾
- 2. iOS - 訪問應用程序創建的文件和文件夾
- 3. PhoneGap - 如何在iOS文檔文件夾中創建新文件
- 4. iPad應用程序文檔文件夾
- 5. 在iOS中創建文件夾OneDrive中的文件夾
- 6. System.UnauthorizedAccessException在應用程序文件夾中創建文件時
- 7. 獲取存儲在應用程序文檔文件夾中的文件內容
- 8. 文檔文件夾中的文件應用程序的大小iOS
- 9. Sencha'a應用程序文件夾內的自定義文件夾
- 10. 在iOS的文檔文件夾中創建多個目錄
- 11. 在文檔文件夾中創建一個子文件夾/文件
- 12. 在Google Drive中創建文件夾內的文件夾android
- 13. 的NSFileManager應用程序文件夾 - IOS
- 14. 在指定文件夾中創建文件夾在新文件夾中創建子文件夾
- 15. 無法創建文件夾,然後在文件夾內創建文件
- 16. Onedrive專用應用程序文件夾 - 創建一個新文件夾
- 17. 無法在文檔文件夾中創建plist文件
- 18. ofstream不會在文檔文件夾中創建文件
- 19. 訪問包括應用程序文件夾中的文件夾。
- 20. 在Windows 8應用程序中顯示文檔庫文件夾
- 21. 使用程序創建文件夾
- 22. iPhone中的應用程序的文檔文件夾
- 23. iPhone應用程序的文檔文件夾中的透明UIImage
- 24. 在應用程序安裝過程中創建文件夾android
- 25. 使用支持iCloud的文件夾中的文檔刪除iOS應用程序
- 26. 課程文件文件夾未創建
- 27. 安裝應用程序後在文檔文件夾中的示例文件
- 28. 在應用程序的保存箱中創建文件夾
- 29. 文檔文件夾中存在文件
- 30. iPad的文件夾內創建子文件夾
anks的回覆, 它的作品,但它創建文件夾「MyFolder」旁邊的應用程序的文檔文件夾..不在裏面。 不知道爲什麼 – 2009-11-19 12:22:43
對不起 - 有一個錯字 - 必須在文檔路徑中追加@「/ MyFolder」,而不是@「MyFolder」。 – Vladimir 2009-11-19 12:26:08
是的,我發現,感謝您的幫助:) – 2009-11-19 12:28:41