Droits d'accès aux fichier ??? [Résolu]

Signaler
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
-
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
-
Salut à tous !

Je cherche à découper des dossiers en plusieurs fichiers. En règle générale, la découpe se passe comme prévue.
Il y a problème lorsque je cherche à découper un dossier contenant des fichiers déjà ouverts par d'autres programmes.
Exemple :
Si je cherche à découper le dossier du projet Visual C++ sur lequel je suis en train de travailler (donc pleins de fichiers en cours d'utilisation par Visual C++), mon programme tout d'abord liste tous les dossiers et fichiers et détermine la taille totale. (en utilisant FindFirstFile() etc...)
Ensuite vient la découpe, où l'on parcourt de nouveau l'arborescence afin d'accéder aux fichiers et les lire.

Et bien dans ce cas là, la taille finale des fichiers découpés est plus faible que celle prévue initialement.
Je pense donc à des droits d'accès.
Donc comment pourrai-je faire pour connaître des droits d'accès à des fichiers qui m'empêcheraient de les lire ?

Merci d'avance pour votre et si vous voyez autre chose qui peut clocher, n'hésitez pas !

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]

10 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
CreateFile() avec FILE_SHARE_READ retournera INVALID_HANDLE_VALUE.

ciao...
BruNews, MVP VC++
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
void __stdcall Test()
{
  HANDLE hfl;
  hfl = CreateFile("D:\\Bosser\\Fichiers\\dirRead\\dirRead.ncb",
        GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN,0);
  if(hfl == INVALID_HANDLE_VALUE) return;
  CloseHandle(hfl);
  MessageBox(0, szappname, szappname, 0);
}


Rien que du normal, le proj étant ouvert dans VS je n'ai pas la MessageBox.
Je ferme VS, elle apparait.

ciao...
BruNews, MVP VC++
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Il y en a peut-être d'ouverts en mode exclusif, à vérifier.

ciao...
BruNews, MVP VC++
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Oui BruNews j'ai pensé à qq chose de ce genre.
Seulement, comment je peux savoir si un fichier a été ouvert en mode exclusif ?

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
A première vue, on dirait que ce ne soit pas ça.
Car je faisais déjà ce test là, et à chaque fois les fichiers sont ouverts correctement.
Je précise que quand je liste mon arborescence, je calcule la taille totale à l'aide de la structure WIN32_FIND_DATA.
Si vous voyez une autre possibilité....

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Je vais tester, bizzare ton affaire.

ciao...
BruNews, MVP VC++
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Il y a déjà le fichier *.ncb en accès exclusif, pas grave vu que n'est d'aucune utilité de l'enregistrer. Je l'efface d'ailleurs systématiquement en fermant VS.

ciao...
BruNews, MVP VC++
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Le fait que je n'ai pas accès à certains fichiers ne m'étonne pas mais je voudrais pouvoir le détecter.
Si tu veux, je peux te filer le code ?

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Attends je vais écrire un mini truc pour voir et je te dirai.

ciao...
BruNews, MVP VC++
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Si c'est bon en fait ! C'est bien en exclusif. Au temps pour moi !
Dommage que ce test soit tout de même assez lent, mais je m'en contenterai.

Merci BruNews.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]