public void CopyDirectoryContents(string directoryToCopy, string directoryToCopyTo) { ITransaction transaction = ObtainCurrentTransaction(); if (transaction != null) { TransactionalFileWriter fileWriter = GetFileWriterForTransaction(transaction); transaction.Enlist(fileWriter); fileWriter.CopyDirectory(directoryToCopy, directoryToCopyTo); } else { IOUtil.CopyDirectory(directoryToCopy, directoryToCopyTo); } }
public void CreateDirectory(string physicalDirectory) { ITransaction transaction = ObtainCurrentTransaction(); if (transaction != null) { TransactionalFileWriter fileWriter = GetFileWriterForTransaction(transaction); transaction.Enlist(fileWriter); fileWriter.CreateDirectory(physicalDirectory); } else { Directory.CreateDirectory(physicalDirectory); } }
public void DeleteDirectory(string directoryPath) { ITransaction transaction = ObtainCurrentTransaction(); if (transaction != null) { // We're participating in a transaction, use the TransactionalFileWriter to delete the directory. TransactionalFileWriter fileWriter = GetFileWriterForTransaction(transaction); transaction.Enlist(fileWriter); fileWriter.DeleteDirectory(directoryPath); } else { // No transaction, just delete the directory. Directory.Delete(directoryPath, true); } }
public void DeleteFile(string filePath) { ITransaction transaction = ObtainCurrentTransaction(); if (transaction != null) { // We're participating in a transaction, use the TransactionalFileWriter to delete the file. TransactionalFileWriter fileWriter = GetFileWriterForTransaction(transaction); transaction.Enlist(fileWriter); fileWriter.DeleteFile(filePath); } else { // No transaction, just delete the file. File.Delete(filePath); } }
public string CopyFile(string filePathToCopy, string directoryToCopyTo) { string targetFilePath = IOUtil.EnsureUniqueFilePath(Path.Combine(directoryToCopyTo, Path.GetFileName(filePathToCopy))); ITransaction transaction = ObtainCurrentTransaction(); if (transaction != null) { TransactionalFileWriter fileWriter = GetFileWriterForTransaction(transaction); transaction.Enlist(fileWriter); fileWriter.CopyFile(filePathToCopy, Path.GetFileName(targetFilePath), directoryToCopyTo); } else { File.Copy(filePathToCopy, targetFilePath, true); } return(targetFilePath); }
public void WriteFile(string filePath, Stream fileContents) { ITransaction transaction = ObtainCurrentTransaction(); if (transaction != null) { // We're participating in a transaction, use the TransactionalFileWriter to write the file. TransactionalFileWriter fileWriter = GetFileWriterForTransaction(transaction); transaction.Enlist(fileWriter); fileWriter.CreateFromStream(filePath, fileContents); } else { // No transaction, just write the stream to a file. FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write); StreamUtil.Copy(fileContents, fs); fs.Flush(); fs.Close(); } }