Path 如何使用Swift中的文件路径API获取文档目录并创建文件名

Path 如何使用Swift中的文件路径API获取文档目录并创建文件名,path,avfoundation,swift,xcode6,nsdocumentdirectory,Path,Avfoundation,Swift,Xcode6,Nsdocumentdirectory,我有这个代码来录制视频与AVFoundation,但我不知道如何转换为Swift - (void)startRecording { NSDateFormatter* formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd-HH-mm-ss"]; NSString* dateTimePrefix = [formatter stringFromDate:[NS

我有这个代码来录制视频与AVFoundation,但我不知道如何转换为Swift

- (void)startRecording 
{    
    NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd-HH-mm-ss"];
    NSString* dateTimePrefix = [formatter stringFromDate:[NSDate date]];

    int fileNamePostfix = 0;
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *filePath = nil;
    do
        filePath =[NSString stringWithFormat:@"/%@/%@-%i.mp4", documentsDirectory, dateTimePrefix, fileNamePostfix++];
    while ([[NSFileManager defaultManager] fileExistsAtPath:filePath]);

    NSURL *fileURL = [NSURL URLWithString:[@"file://" stringByAppendingString:filePath]];
    [self.fileOutput startRecordingToOutputFileURL:fileURL recordingDelegate:self];
}
我不知道如何在Swift中使用此路径


谢谢

以下是获取文档目录的方法

// NSArray *paths = NSSearchPathForDirectoriesInDomains(
//   NSDocumentDirectory, NSUserDomainMask, YES);
let paths = NSSearchPathForDirectoriesInDomains(
      .DocumentDirectory, .UserDomainMask, true)

// NSString *documentsDirectory = [paths objectAtIndex:0];
let documentsDirectory = paths[0] as String
下面是如何使用后缀选择文件名

var filePath:String? = nil
var fileNamePostfix = 0
do {
    // filePath =[NSString stringWithFormat:@"/%@/%@-%i.mp4", 
    //   documentsDirectory, dateTimePrefix, fileNamePostfix++];
    filePath = 
       "\(documentsDirectory)/\(dateTimePrefix)-\(fileNamePostfix++).mp4"
} while (NSFileManager.defaultManager().fileExistsAtPath(filePath))

此代码只是您代码的一个直接端口,除了我在
文档目录
之前删除了
/
,因为它已经是一个绝对路径。

以下是获取文档目录的方法

// NSArray *paths = NSSearchPathForDirectoriesInDomains(
//   NSDocumentDirectory, NSUserDomainMask, YES);
let paths = NSSearchPathForDirectoriesInDomains(
      .DocumentDirectory, .UserDomainMask, true)

// NSString *documentsDirectory = [paths objectAtIndex:0];
let documentsDirectory = paths[0] as String
下面是如何使用后缀选择文件名

var filePath:String? = nil
var fileNamePostfix = 0
do {
    // filePath =[NSString stringWithFormat:@"/%@/%@-%i.mp4", 
    //   documentsDirectory, dateTimePrefix, fileNamePostfix++];
    filePath = 
       "\(documentsDirectory)/\(dateTimePrefix)-\(fileNamePostfix++).mp4"
} while (NSFileManager.defaultManager().fileExistsAtPath(filePath))

此代码只是您代码的一个直接端口,除了我在
文档目录
之前删除了
/
,因为它已经是一个绝对路径。

是的,但是您可以获得file://... do filePath=[NSString stringWithFormat:@/%/%-%i.mp4],文档目录,日期时间前缀,文件名后缀++];而([[NSFileManager defaultManager]fileExistsAtPath:filePath]);NSURL*fileURL=[NSURL URLWithString:[@“file://”stringByAppendingString:filePath]];[self.fileOutput startRecordingToOutputFileURL:fileURL-recordingDelegate:self];如何转换此行,保存在路径中?[self.fileOutput startRecordingToOutputFileURL:fileURL-recordingDelegate:self];我不能调用Delegated你的类实现了协议吗?最好用具体的行、你尝试了什么以及你得到的确切错误信息再问一个问题file://... do filePath=[NSString stringWithFormat:@/%/%-%i.mp4],文档目录,日期时间前缀,文件名后缀++];而([[NSFileManager defaultManager]fileExistsAtPath:filePath]);NSURL*fileURL=[NSURL URLWithString:[@“file://”stringByAppendingString:filePath]];[self.fileOutput startRecordingToOutputFileURL:fileURL-recordingDelegate:self];如何转换此行,保存在路径中?[self.fileOutput startRecordingToOutputFileURL:fileURL-recordingDelegate:self];我不能调用Delegated你的类实现了协议吗?最好用具体的行、您尝试了什么以及您得到的确切错误消息来提出另一个问题。