Projelerimizde dosya sistemi üzerinde geçici olarak dosya oluşturma ve işimiz bittiğinde silme ihtiyacı hissedebiliriz.
Bu yazıyı okumadan önce Hem benzersiz hem de geçici dosya oluşturmanın en kolay yolu ve C# ile Geçici Dosya Oluşturmak başlıklı yazılarımı okumanızı öneririm.
Bu linkte bulduğum yöntemi çok kullanışlı buldum ve sizler (aynı zamanda kendim) için türkçeleştirdim;
public class TempFile : IDisposable { public TempFile() : this(string.Empty) { }
private readonly string _tmpfile;
public TempFile(string extension)
{
_tmpfile = Path.GetTempFileName();
if (!string.IsNullOrEmpty(extension))
{
string newTmpFile = _tmpfile + extension;
/// Yeni bir geçici dosya oluşturulur
File.Create(newTmpFile, 0);
/// Eski geçici dosya silinmediyse, silinir.
File.Delete(_tmpfile);
/// Yeni oluşturulan geçici dosya kullanıma hazır!
_tmpfile = newTmpFile;
}
}
public string FullPath
{
get { return _tmpfile; }
}
void IDisposable.Dispose()
{
if (!string.IsNullOrEmpty(_tmpfile) && File.Exists(_tmpfile))
{
File.Delete(_tmpfile);
}
} }</pre>
Kullanımına örnek;
using(TempFile tmp = new TempFile(".dat")) /// dat uzantılı bir geçici dosya oluşturuluyor { /// FullPath özelliğinden geçici dosyanın yolu ve dosya adı alınabilir; string filename = tmp.FullPath; }
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484