как отметить папки для удаления C#

Если вы можете думать в долгосрочной перспективе, наличие в столбце значений NULL влияет на то, как вы можете создавать свои запросы. Независимо от того, используете ли вы операторы CASE, COALESCE или должны явно проверять значения NULL, вы можете принять решение за вас.

С точки зрения производительности быстрее не беспокоиться о NULLS. С точки зрения дизайна, использование NULL - это простой способ узнать, что элемент никогда не был заполнен. Полезные примеры включают столбцы «UpdatedDateTime». NULL означает, что элемент никогда не обновлялся.

Лично я допускаю NULL в большинстве ситуаций.

7
задан Dan Herbert 17 June 2009 в 14:04
поделиться

3 ответа

Источник:

http://abhi.dcmembers.com/blog/2009/03/24/mark-file-for-deletion-on-reboot/

Документация :

https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-movefileexa#parameters

///
/// Consts defined in WINBASE.H
///
[Flags]
internal enum MoveFileFlags
{
    MOVEFILE_REPLACE_EXISTING = 1,
    MOVEFILE_COPY_ALLOWED = 2,
    MOVEFILE_DELAY_UNTIL_REBOOT = 4, //This value can be used only if the process is in the context of a user who belongs to the administrators group or the LocalSystem account
    MOVEFILE_WRITE_THROUGH  = 8
}


/// <summary>
/// Marks the file for deletion during next system reboot
/// </summary>
/// <param name="lpExistingFileName">The current name of the file or directory on the local computer.</param>
/// <param name="lpNewFileName">The new name of the file or directory on the local computer.</param>
/// <param name="dwFlags">MoveFileFlags</param>
/// <returns>bool</returns>
/// <remarks>http://msdn.microsoft.com/en-us/library/aa365240(VS.85).aspx</remarks>
[System.Runtime.InteropServices.DllImportAttribute("kernel32.dll",EntryPoint="MoveFileEx")]
internal static extern bool MoveFileEx(string lpExistingFileName, string lpNewFileName,
MoveFileFlags dwFlags);

//Usage for marking the file to delete on reboot
MoveFileEx(fileToDelete, null, MoveFileFlags.MOVEFILE_DELAY_UNTIL_REBOOT);
19
ответ дан 6 December 2019 в 07:27
поделиться

цитата из http://abhi.dcmembers.com/blog/2009/03/24/mark-file-for-deletion-on-reboot/ :

///
/// Consts defined in WINBASE.H
///
internal enum MoveFileFlags
{
    MOVEFILE_REPLACE_EXISTING = 1,
    MOVEFILE_COPY_ALLOWED = 2,
    MOVEFILE_DELAY_UNTIL_REBOOT = 4,
    MOVEFILE_WRITE_THROUGH  = 8
}


/// <summary>
/// Marks the file for deletion during next system reboot
/// </summary>
/// <param name="lpExistingFileName">The current name of the file or directory on the     local computer.</param>
/// <param name="lpNewFileName">The new name of the file or directory on the local   computer.</param>
/// <param name="dwFlags">MoveFileFlags</param>
/// <returns>bool</returns>
/// <remarks>http://msdn.microsoft.com/en-us/library/aa365240(VS.85).aspx</remarks>
[System.Runtime.InteropServices.DllImportAttribute("kernel32.dll",EntryPoint="MoveFileEx")]
internal static extern bool MoveFileEx(string lpExistingFileName, string lpNewFileName,
MoveFileFlags dwFlags);

//Usage for marking the file to delete on reboot
MoveFileEx(fileToDelete, null, MoveFileFlags.MOVEFILE_DELAY_UNTIL_REBOOT);

править: избили

1
ответ дан 6 December 2019 в 07:27
поделиться

Используйте PInvoke и вызовите MoveFileEx, передав null в качестве пункта назначения ....

Эта ссылка содержит пример кода:

[DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
public static extern bool MoveFileEx(string lpExistingFileName, string lpNewFileName, int dwFlags);

public const int MOVEFILE_DELAY_UNTIL_REBOOT = 0x4;

MoveFileEx(filename, null, MOVEFILE_DELAY_UNTIL_REBOOT);
3
ответ дан 6 December 2019 в 07:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: