/// <summary> /// Marks the file in the index as deleted. /// Note only the pointer to the file is removed, the data itself remains stored in the data file (data is not purged). /// </summary> public void DeleteDataIdentifier(Guid dataIdentifier, DeleteFileBehaviour deleteFileBehaviour, StreamStateBehaviour indexStreamStateBehaviour) { switch (indexStreamStateBehaviour) { case StreamStateBehaviour.OpenNewStreamForReadingAndWriting: // // open the stream and make a recursive call // using (IndexStream = FileStreamFactory.CreateFileStream(IndexFilename, indexStreamStateBehaviour)) { DeleteDataIdentifier(dataIdentifier, deleteFileBehaviour, StreamStateBehaviour.UseExistingStream); } break; case StreamStateBehaviour.UseExistingStream: switch (deleteFileBehaviour) { case DeleteFileBehaviour.IgnoreWhenNotExists: break; case DeleteFileBehaviour.ThrowExceptionWhenNotExists: if (!Exists(dataIdentifier, StreamStateBehaviour.UseExistingStream)) { throw new FileNotFoundException(string.Format("File does not exist ({0})", dataIdentifier)); } break; default: throw new NotSupportedException(string.Format("Unsupported delete file behaviour ({0})", deleteFileBehaviour)); } DeleteDataIdentifierInExistingStream(dataIdentifier, 0, OffsetFirstIndexBlock, indexStreamStateBehaviour); break; default: throw new NotSupportedException(string.Format("Unexpected indexStreamStateBehaviour {0}", indexStreamStateBehaviour)); } }
public static void DeleteDataIdentifier(string fileStorageName, Guid dataIdentifier, DeleteFileBehaviour deleteFileBehaviour) { var fileStorageHandler = FileStorageHandler.Open(fileStorageName); fileStorageHandler.DeleteDataIdentifier(dataIdentifier, deleteFileBehaviour, StreamStateBehaviour.OpenNewStreamForReadingAndWriting); }
public static void DeleteDataIdentifier(string fileStorageName, Guid dataIdentifier, DeleteFileBehaviour deleteFileBehaviour) { FileStorageHandler fileStorageHandler = FileStorageHandler.Open(fileStorageName); fileStorageHandler.DeleteDataIdentifier(dataIdentifier, deleteFileBehaviour, StreamStateBehaviour.OpenNewStreamForReadingAndWriting); }