2

是否可以在使用 FileStream 创建文件时同时应用 FileAttributes?我想使用 FileAttributes.Temporary 文件属性创建用于流写入的文件。

4

4 回答 4

0

您可以FileOptions.DeleteOnClose用作参数之一。完成操作并处置流后,文件将自动删除。

于 2011-09-28T07:16:09.067 回答
-1

为什么您需要一次完成所有操作?

  1. 只需创建文件(使用File.Create,或者,如果它是临时文件,使用GetTempFileName。)
  2. 在新创建的文件上设置属性
  3. 使用适合您的任何方法打开文件
于 2011-09-28T07:32:59.600 回答
-1

File.SetAttributes是的,当然你也可以通过使用方法来应用 FileAttributes

于 2011-09-28T07:09:11.670 回答
-1

如果您使用 Win32 CreateFile 方法,则可以执行此操作

uint readAccess = 0x00000001;
uint writeAccess = 0x00000002;

uint readShare = 0x00000001;   

uint createAlways = 2;

uint tempAttribute = 0x100;
uint deleteOnClose = 0x04000000; 

new FileStream(new SafeFileHandle(NativeMethods.CreateFile("filename", 
                                                           readAccess | writeAccess, 
                                                           readShare, 
                                                           IntPtr.Zero, 
                                                           createAlways, 
                                                           tempAttribute | deleteOnClose, 
                                                           IntPtr.Zero), 
                                  true), 
               FileAccess.ReadWrite, 4096, true);


private static class NativeMethods
{
    [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
    internal static extern IntPtr CreateFile(string name, uint accessMode, uint shareMode, IntPtr security, uint createMode, uint flags, IntPtr template);
}

有关详细信息,请参阅CreateFile的 MSDN 文档

于 2017-11-13T13:11:06.287 回答