diff options
Diffstat (limited to 'src/ProtoGen.Test/TempFile.cs')
-rw-r--r-- | src/ProtoGen.Test/TempFile.cs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/ProtoGen.Test/TempFile.cs b/src/ProtoGen.Test/TempFile.cs new file mode 100644 index 00000000..e41b591b --- /dev/null +++ b/src/ProtoGen.Test/TempFile.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace Google.ProtocolBuffers.ProtoGen +{ + class ProtoFile : TempFile + { + public ProtoFile(string filename, string contents) + : base(filename, contents) + { + } + } + class TempFile : IDisposable + { + private string tempFile; + + public static TempFile Attach(string path) + { + return new TempFile(path, null); + } + + protected TempFile(string filename, string contents) { + tempFile = filename; + if (contents != null) + { + File.WriteAllText(tempFile, contents, new UTF8Encoding(false)); + } + } + + public TempFile(string contents) + : this(Path.GetTempFileName(), contents) + { + } + + public string TempPath { get { return tempFile; } } + + public void ChangeExtension(string ext) + { + string newFile = Path.ChangeExtension(tempFile, ext); + File.Move(tempFile, newFile); + tempFile = newFile; + } + + public void Dispose() + { + if (File.Exists(tempFile)) + { + File.Delete(tempFile); + } + } + } +} |