Smartmobili.Cocoa.NSFileWrapper.WriteToFile C# (CSharp) Method

WriteToFile() public method

public WriteToFile ( NSString path, bool atomicFlag, bool updateFilenamesFlag ) : bool
path NSString
atomicFlag bool
updateFilenamesFlag bool
return bool
        public virtual bool WriteToFile(NSString path, bool atomicFlag, bool updateFilenamesFlag)
        {
            NSFileManager fm = NSFileManager.DefaultManager;
            bool success = false;

            //NSDebugLLog(@"NSFileWrapper",
            //            @"writeToFile: %@ atomically: updateFilenames: ", path);

            switch (_wrapperType)
            {
                case GSFileWrapperType.GSFileWrapperDirectoryType:
                    {
                        // FIXME - more robust save proceedure when atomicFlag set
                        NSEnumerator enumerator = ((NSDictionary)_wrapperData).KeyEnumerator();
                        NSString key;
                        NSError err = null;

                        fm.CreateDirectoryAtPath(path, true, _fileAttributes, ref err);
                        while ((key = (NSString)enumerator.NextObject()) != null)
                        {
                            NSString newPath = path.StringByAppendingPathComponent(key);
                            NSFileWrapper fw = (NSFileWrapper)((NSDictionary)_wrapperData).ObjectForKey(key);
                            fw.WriteToFile(newPath, atomicFlag, updateFilenamesFlag);
                        }
                        success = true;
                        break;
                    }
                case GSFileWrapperType.GSFileWrapperRegularFileType:
                    {
                        if (((NSDictionary)_wrapperData).WriteToFile(path, atomicFlag))
                            success = fm.ChangeFileAttributes(_fileAttributes, path);
                        break;
                    }
                //case GSFileWrapperType.GSFileWrapperSymbolicLinkType:
                //    {
                //        success = fm.CreateSymbolicLinkAtPath(path, _wrapperData);
                //        break;
                //    }
            }
            if (success && updateFilenamesFlag)
            {
                SetFilename(path.LastPathComponent());
            }

            return success;
        }