Casa
Top.Mail.Ru Yandeks.Metrika
Foro: "Principal";
Archivo actual: 2002.01.08;
Descargar: [xml.tar.bz2];

abajo

¿Y puede bloquear el acceso a la carpeta, algo así como fmShareExclusive, pero para la carpeta? Encontrar ramas similares


Art   (2001-12-18 15:12) [0]

¿Y puede bloquear el acceso a la carpeta, algo así como fmShareExclusive, pero para la carpeta?



Алексей Петров   (2001-12-18 16:08) [1]

Usando CreateFile, puede abrir un directorio, incl. y exclusivo.

Inténtalo ...

Detalles en MSDN



cdaDmitriy   (2001-12-18 17:20) [2]

> Alexey Petrov ©
FUENTE para usar CreateFile para
Con CreateFile puedo abrir un directorio? ...



Алексей Петров   (2001-12-18 17:23) [3]

> cdaDmitriy © (18.12.01 17: 20)
Lea MSDN.
Fuente I en casos triviales no citar.



Art   (2001-12-18 17:25) [4]

Definitivamente lo intentaré, pero de las palabras MSDN respira algo melkosoftovym, y estoy hablando de Delphi !!



cdaDmitriy   (2001-12-18 17:40) [5]

> Alexey Petrov © ¿No cito en casos triviales?
Intenté ... tratar de dar un ejemplo.



cdaDmitriy   (2001-12-18 17:47) [6]

S1: = "D: \ ICON \"; incluyendo y exclusivo
H: = Integer (CreateFile (PChar (S1), GENERIC_READ, 0 , nil, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0));
label1.Caption: = inttostr (H);
si H <0, aumente EFCreateError.CreateResFmt (@S, [S1]);




Art   (2001-12-18 17:53) [7]

cdaDmitriy de UTD lo tienes, no tengo ninguna duda en el rendimiento del código, pero la búsqueda para leer sobre los directorios



cdaDmitriy   (2001-12-18 17:59) [8]

Ayuda para CreateFile y probado



Art   (2001-12-18 20:24) [9]

Chicos o tontos o no saben leer. Se les hizo una pregunta para bloquear la carpeta y acceder a ella. ¿Y usted me habló de los archivos? Al principio no lo creía, pero luego descubrí todo, todo lo que está escrito aquí, excepto mi pregunta, ¡es una tontería!



Anatoly Podgoretsky   (2001-12-18 20:28) [10]

Sí, y qué cree que le responderá en el futuro, no quiero verificar el código anterior, pero la siguiente carpeta sugiere el mismo archivo.



Art   (2001-12-18 21:39) [11]

"Natholii, entonces soy un tonto!" ? todo aqui !!! tried Probé el código anterior y lo escribí yo mismo y no revisé nada, si especifica un directorio, nada cambia, y si el archivo es todo, entonces todo funciona, ¡el archivo está bloqueado! ? ¿Cómo lidiar con esto?



Алексей Петров   (2001-12-19 08:41) [12]

Otra pista:
En el código dado por "cdaDmitriy © (18.12.01 17: 47)" errores de 2.
1. En el nombre del directorio, el "\" final es superfluo.
2. La comprobación de si el archivo está abierto se debe realizar comprobando INVALID_HANDLE_VALUE, no <0. En la versión actual de Delphi y WinAPI Integer (INVALID_HANDLE_VALUE), por supuesto, <0, pero esto puede cambiar, y es teóricamente posible que aparezca un Handle correcto, como el Integer (Handle) <0.
3. Para verificar los errores de WinAPI, es más conveniente escribir
Win32Check (H <> INVALID_HANDLE_VALUE)

> Arte © (18.12.01 17: 25)
Si MSDN está confundido: consulte la ayuda en el SDK, esta es la versión real truncada de MSDN. Y desde Delphi, todas las API están bellamente invocadas.



cdaDmitriy   (2001-12-19 09:31) [13]

> Alexey Petrov ©

1. En el nombre del directorio, el "\" final es superfluo.
no es superfluo sino redundante:

lpFileName

Apunta a una cadena terminada en nulo que se puede usar para crear o abrir.

Si * lpFileName es una ruta, hay un límite de tamaño de cadena predeterminado de MAX_PATH caracteres. Esta función es parses de rutas.
Windows NT: puede usar las rutas de acceso de CreateFile y Prepending "\\? \" A la ruta. El "\\? \" Le dice a la función que desactive el análisis de ruta. 32,000 caracteres Unicode largos. Debes usar los caminos completamente calificados con esta técnica. Esto también funciona con nombres UNC. El "\\? \" Se ignora como parte de la ruta. Por ejemplo, "\\? \ C: \ myworld \ private" se ve como "C: \ myworld \ private", y "\\? \ UNC \ tom_1 \ hotstuff \ coolapps" se ve como "\\ tom_1 \ hotstuff \ coolapps ".

2. ver la implementación de clases unitarias; aunque
Win32Check (H <> INVALID_HANDLE_VALUE) es más confiable.


{TFileStream}

constructor TFileStream.Create (const FileName: string; Mode: Word);
comenzar
si Mode = fmCreate entonces
comenzar
FHandle: = FileCreate (FileName);
si FHandle <0 entonces
levante EFCreateError.CreateResFmt (@SFCreateError, [FileName]);
fin de lo contrario
comenzar
FHandle: = FileOpen (FileName, Mode);
si FHandle <0 entonces
levante EFOpenError.CreateResFmt (@SFOpenError, [FileName]);
fin;
fin;

Arte © todo funciona si quieres escribir enviar



Páginas: 1 rama entera

Foro: "Principal";
Archivo actual: 2002.01.08;
Descargar: [xml.tar.bz2];

arriba









Memoria: 0.6 MB
Tiempo: 0.027 c
1-22240
creepster
2001-12-16 19:20
2002.01.08
Botón


1-22261
bk
2001-12-17 15:42
2002.01.08
Excel


3-21928
encanto
2001-12-04 17:42
2002.01.08
Desbordamiento aritmético o truncamiento de cadena con Restaurar


6-22275
Moscower
2001-10-08 12:43
2002.01.08
¿Cómo puedo enviar un comando chmod a un servidor Linux a través de TNMFTP?


1-22245
T2
2001-12-16 07:12
2002.01.08
Gost y mejor cripta





africaans albanés Arabic armenio Azerbaiyán vasco Bielorruso Bulgarian Catalán Chino (simplificado) Chino (tradicional) Croata Checo Danés Dutch Inglés Estonia filipina Finnish Francés
gallego georgiano Alemán Griego criollo haitiano hebreo hindi Húngaro islandés Indonesian irlandés Italiana Japonés Korean letón lituano macedonio Malay maltés Noruego
persa polaco Portuguese rumano Ruso Serbio Slovak Esloveno Español swahili Sueco Thai turco ucranio Urdu vietnamita galés yídish bengalí bosnio
cebuano esperanto gujarati hausa hmong igbo javanés kannada khmer lao latín maorí marathi mongol nepali punjabi somalí Tamil telugu yoruba
zulú
Английский Francés Alemán Italiano portugués Русский Español