是否可以在使用 FileStream 创建文件时同时应用 FileAttributes?我想使用 FileAttributes.Temporary 文件属性创建用于流写入的文件。
问问题
2603 次
4 回答
0
您可以FileOptions.DeleteOnClose
用作参数之一。完成操作并处置流后,文件将自动删除。
于 2011-09-28T07:16:09.067 回答
-1
为什么您需要一次完成所有操作?
- 只需创建文件(使用File.Create,或者,如果它是临时文件,使用GetTempFileName。)
- 在新创建的文件上设置属性
- 使用适合您的任何方法打开文件
于 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 回答