Desperated.大家好!我在使用MPMoviePlayerController时遇到了一些问题.我已经使用了NSBundle的视频.但那不是我需要的.我需要从Documents目录中播放它,因为这是我存储录制视频的地方,其中URL存储在CoreData中.但是让我们把它放在一边,并将代码简化到最低要求.如果使用contentURL,这段代码实际上是可行的,导致NSBundle.在它之后,我做了什么来到文档的地方.我所做的:
NSURL *contentURL = [[NSBundle mainBundle] URLForResource:@"Oct_08_2012_10_00_51" withExtension:@"mp4"]; // this works
NSString* docPath = [NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString * docaPathFull = [NSString stringWithFormat:@"%@%@", docPath, @"/Oct_08_2012_10_00_51.mp4"];
NSURL * docUrl= [NSURL URLWithString: docaPathFull];
BOOL ex = [[NSFileManager defaultManager] fileExistsAtPath:docaPathFull];
NSLog(@"file exists: %d, path using docPath: %@",ex, docaPathFull);
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:docUrl];
player.shouldAutoplay = YES;
player.controlStyle = MPMovieControlStyleEmbedded;
[player.view setFrame: self.thumbButton.bounds];
[player prepareToPlay];
[self.view addSubview: player.view];
[player play];
Run Code Online (Sandbox Code Playgroud)
我们有什么:
2012-10-08 13:14:43.532 Voto[11968:907] file exists: 1, path using docPath: /var/mobile/Applications/07B8574A-A3BA-4B23-BB3F-995B33A01B95/Documents/Oct_08_2012_10_00_51.mp4 …Run Code Online (Sandbox Code Playgroud) 我正在制作音频应用,用户可以下载本地存储到documentDirectoryusing中的文件FileManager。
接下来,我想允许用户使用一个按钮删除所有文件。在文档中,有一种删除项目的方法。
这是我的代码:
@IBAction func deleteDirectoryButton(_ sender: Any) {
let documentsUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
do {
try FileManager.default.removeItem(at: documentsUrl, includingPropertiesForKeys: nil, options: [])
} catch let error {
print(error)
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不会出错Ambiguous reference to member 'removeItem(atPath:)'。
有没有更好的方法来一次访问documentDirectory和从目录中删除所有文件?
我有这段代码将代码保存到Documents文件夹.
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
UIImage *image = imageView.image; // imageView is my image from camera
NSData *imageData = UIImagePNGRepresentation(image);
[imageData writeToFile:savedImagePath atomically:NO];
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种能够保存多个图像的方法,因为这样可以保留写入savedImage.png名称.
我不介意在谷歌或其他任何地方寻找它,但我需要知道它被称为什么,因为用错误的关键词查找真的推迟了世界:-)
干杯
我正在将音频文件列表存储到我的文档目录中,然后获取它们.
它给了我一个音频文件列表以及它给我一个名字的文件@".DS_Store".在获取内容时我想留下这个文件目录文件.
除了从阵列中删除音频列表或应用@".DS_Store"支票之外,有什么方法可以在获取音频列表时摆脱这一点.
究竟是什么原因.
#pragma mark - Saving Audio in Document Directory
-(void)saveAudioinDocumentDirectory:(ASIHTTPRequest *)theRequest
{
/*save the Audio file in Document Directory */
NSFileManager *fileManager=[NSFileManager defaultManager];
NSLog(@"GOT THE SIZe OF AUDIO %d",[[theRequest responseData] length]);
NSLog(@"AUDIO ID IS %@",[[theRequest userInfo] valueForKey:@"audioIndex"]);
/*Get the Path to Application Documents Directory*/
NSArray *docDir=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
/*append the neccessary file extension */
NSString *filepathStr=[NSString stringWithFormat:@"/%@/%@.mp3",docDir,[NSString stringWithFormat:@"%@",[[theRequest userInfo] valueForKey:@"audioIndex"]]];
/*Check if my crrent file exists in the Documents Directory*/
if(![fileManager fileExistsAtPath:filepathStr]) …Run Code Online (Sandbox Code Playgroud) 我想制作多个目录,我不知道如何.这是我的代码到现在为止.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"tops",@"bottoms",@"right" ];
if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
[[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:nil]; //Create folder
}
Run Code Online (Sandbox Code Playgroud)
我希望有4个目录名为tops bottomoms left and left但是如果我以上述方式执行它就不起作用..有没有办法使用这个代码创建多个目录?还是我的代码错了?谢谢!
我在NSDocumentDirectory中创建私人文件夹,我想在iTunes中隐藏它并禁止备份.
在这个问题中如何隐藏在ios中的文档目录中创建的文件夹?人们建议保存在私人目录中.
Application_Home/Library /您不应将此目录用于用户数据文件.
在iTunes11之前,这个解决方案对我有用
但现在我在iTunes中看到包含私人文档的文件夹.
有人能帮帮我吗?
我正在使用OS X Yosemite上的Xcode 6中的Swift/Obj-C franken-app.我正试图在运行iOS 8的iPod Touch上运行它.
我几天前从触摸屏中删除了应用程序,从此它崩溃了EXC_BREAKPOINT,我在这里设置了pathArr:
class func feedURLs() -> NSArray
{
var items = NSMutableArray()
var pathArr: NSArray = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true); // <-- here
var path = pathArr[0].stringByAppendingPathComponent("feeds")
var feeds: NSMutableArray = NSArray(contentsOfFile: path).mutableCopy() as NSMutableArray
for dict : AnyObject in feeds
{
items.addObject(NSURL(string: dict["url"] as NSString))
}
return items
}
Run Code Online (Sandbox Code Playgroud)
我在Xcode中遇到的确切崩溃:
Thread 1: EXC_BREAKPOINT (code=EXC_ARM_BREAKPOINT, subcode=0xe7ffdefe)
Run Code Online (Sandbox Code Playgroud)
最终从(Objective C)视图控制器中的viewDidLoad调用该方法.我没有启用任何断点.我强制清理项目,删除应用程序,重新启动所有内容,无济于事.
有任何想法吗?
我将一些文件存储在iOS应用程序的Library目录中,使用以下方法构建它.最后,我可以调用[MyClass dataDirectory]我的文件处理,一切都很顺利.然而,我最近发现,一些文件似乎神秘地消失在这个目录之外.根据文件,情况并非如此.这是存储持久文件的安全位置吗?
该目录的控制台输出是: ~/var/mobile/Containers/Data/Application/{id}/Library/Data
+ (NSString*)libraryDirectory
{
return [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
}
+ (NSString*)dataDirectory
{
NSString* dir = [[self libraryDirectory] stringByAppendingPathComponent:@"Data"];
BOOL isDir=NO;
NSError * error = nil;
NSFileManager *fileManager = [NSFileManager new];
if (![fileManager fileExistsAtPath:dir isDirectory:&isDir] && isDir)
{
[[NSFileManager defaultManager] createDirectoryAtPath:dir
withIntermediateDirectories:YES
attributes:nil
error:&error];
}
[self addSkipBackupAttributeToItemAtURL:[NSURL fileURLWithPath:dir isDirectory:YES]];
if (error != nil) {
DDLogError(@"Fatal error creating ~/Library/Data directory: %@", error);
}
return dir;
}
Run Code Online (Sandbox Code Playgroud)
和跳过方法:
+ (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
if ([[NSFileManager defaultManager] …Run Code Online (Sandbox Code Playgroud) 这是我的代码:
let fileName = "someFileName"
func saveDataToFile(urlStr:String){
let url = NSURL(string: urlStr)
var data:NSData!
let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
let directory = paths[0]
let filePath = directory.stringByAppendingPathComponent(self.fileName)
print(filePath)//prints /Users/.../Library/Developer/CoreSimulator/Devices/1013B940-6FAB-406B-96FD-1774C670A91E/data/Containers/Data/Application/2F7139D6-C137-48BF-96F6-7579821B17B7/Documents/fileName
let fileManager = NSFileManager.defaultManager()
data = NSData(contentsOfURL: url!)
print(data) // prints a lot of data
if data != nil{
fileManager.createFileAtPath(filePath, contents: data, attributes: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想读取这些数据:
func readDataFromFile(){
let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
let directory = paths[0]
let filePath = directory.stringByAppendingPathComponent(self.fileName)
print(filePath) // prints the same path
let …Run Code Online (Sandbox Code Playgroud) 如果应用程序需要数百个音频文件(它们很小,5-25KB),将它们放在资产目录中还是文档目录中更好?我已经尝试了这两种方法,它们似乎没有太大不同,无论哪种方式在项目导航器中管理数百个文件都很痛苦,而且两者的应用程序文件大小相同。