使用FileStream创建文件并应用FileAttributes

时间:2011-09-28 07:05:18

标签: c# .net-4.0 filestream file-attributes

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

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:-1)

Ya,您当然也可以使用File.SetAttributes方法

来应用FileAttributes

答案 2 :(得分:-1)

为什么你需要一次完成所有工作?

  1. 只需创建文件(使用File.Create,或者如果是临时文件,则使用GetTempFileName。)
  2. Set the attributes关于新创建的文件
  3. 使用适合您的任何方法打开文件

答案 3 :(得分:-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文档