public static void Create(String path, NameConflictOption aNameConflictOption) { if (File.Exists(path)) { switch (aNameConflictOption) { case NameConflictOption.Cancel: case NameConflictOption.Skip: return; case NameConflictOption.Overwrite: FileExt.Delete(path); break; case NameConflictOption.RenameExisting: FileExt.Move(path, FileExt.MakeUnique(path)); break; case NameConflictOption.RenameNew: throw new InvalidDataException("Can't rename a file we are trying to create"); default: break; } } DirectoryExt.Create(Path.GetDirectoryName(path)); FileStream stream = File.Create(path); stream.Close(); }
public static void Copy(String source, String destination, NameConflictOption aNameConflictOption, Action <ProcessProgress> handler, ref int cancel) { if (!File.Exists(source)) { throw new FileNotFoundException("The source file could not be found."); } if (File.Exists(destination)) { switch (aNameConflictOption) { case NameConflictOption.Cancel: case NameConflictOption.Skip: return; case NameConflictOption.Overwrite: Delete(destination); break; case NameConflictOption.RenameExisting: FileExt.Move(destination, FileExt.MakeUnique(destination)); break; case NameConflictOption.RenameNew: destination = FileExt.MakeUnique(destination); break; default: break; } } if (!Directory.Exists(Path.GetDirectoryName(destination))) { DirectoryExt.Create(Path.GetDirectoryName(destination)); } FileInfo fileInfo = new FileInfo(source); bool noBuffer = fileInfo.Length < Constants.USE_BUFFER_FILE_SIZE_BYTES; XCopy.Copy(source, destination, aNameConflictOption == NameConflictOption.Overwrite, noBuffer, handler, ref cancel); }
public static void Write(String filename, String text, bool append) { //Clear readonly flag if (File.Exists(filename)) { File.SetAttributes(filename, FileAttributes.Normal); } if (append) { File.AppendAllText(filename, text); } else { if (File.Exists(filename)) { Delete(filename); } if (!Directory.Exists(Path.GetDirectoryName(filename))) { DirectoryExt.Create(Path.GetDirectoryName(filename)); } File.WriteAllText(filename, text); } }