Невозможно изменить флаги файла после того, как вы создали файл. Вы можете изменить только атрибуты файла. Я также взглянул на Windows API, и единственный доступный метод - SetFileAttributes
, который позволяет изменять только атрибуты.
Вам следует подумать о другой логике для достижения этой цели, например, внедрить System.IO.File.Delete()
самостоятельно, если вы хотите, чтобы файл был удален и не передавал FILE_FLAG_DELETE_ON_CLOSE
.
Пример:
public class FileStreamEx : System.IO.FileStream
{
private bool _deleteOnDispose = false;
public FileStreamEx(string path, ....) : base(path, ...) { }
public bool DeleteOnDispose
{
get { return _deleteOnDispose; }
set { _deleteOnDispose = value; }
}
protected override void Dispose(bool disposing)
{
if (_deleteOnDispose)
{
System.IO.File.Delete(this.Name);
}
base.Dispose(disposing);
}
}