Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
        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);
        }
Пример #6
0
        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();
            }
        }