主页

论坛:“主要”;
当前存档:2002.01.08;
下载:[xml.tar.bz2];
向下

你可以阻止访问该文件夹,如fmShareExclusive,但对于文件夹??? 找到类似的分支


艺术(2001-12-18 15:12) [0]

А можно заблокировать доступ к папке,что-то типа fmShareExclusive ,но для папки???



阿列克谢彼得罗夫(2001-12-18 16:08) [1]

С помощью CreateFile можно открыть и директорию, в т.ч. и эксклюзивно.

Попробуйте...

Подробности в MSDN



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

> Алексей Петров ©
SOURCE for use CreateFile for
С помощью CreateFile можно открыть и директорию ? ...



阿列克谢彼得罗夫(2001-12-18 17:23) [3]

> cdaDmitriy © (XNUMX XNUMX:XNUMX)
Читайте MSDN.
Source я в тривиальных случаях не привожу.



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

Я обязательно попробую ,но от слов MSDN веет чем-то мелкософтовым,а я про Дельфи!!




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

> Алексей Петров © я в тривиальных случаях не привожу ?
я пробовал ... попробуй идай пример.



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

SXNUMX:="D:\ICON\"; в т.ч. и эксклюзивно
H := Integer(CreateFile(PChar(SXNUMX), GENERIC_READ, 0 , nil, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, XNUMX));
labelXNUMX.Caption:=inttostr(H);
if H < XNUMX then raise EFCreateError.CreateResFmt(@S, [SXNUMX]);



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

cdaDmitriy откудова ты ето достал,я не сомневаюсь в работоспособности кода,но охота почитать по поводу директорий



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

help for CreateFile and попробовал



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

Ребят вы или дураки или читать не умеете.Был задан вопрос Заблокировать папку надо,доступ к ней. А вы про файлы мне???Я сначала не поверил,но потом я все выяснил,все написанное здесь,кроме моего вопроса - чушь!




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

Да и как ты думаешь будут тебе отвечать в дальнейшем, я не хочу проверять приведенный код, но хинт следующий Папка такой же файл.



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

Ђнатолий,значит Я - дурак!!! ? все тут!!! џ пробовал и код приведенный выше и сам писал и ничего не прошло,если указывать директорию - ничего не менЯетсЯ,а если файл , то все ЋЉ работает,файл заблокирован!!! ? как с этим быть???



阿列克谢彼得罗夫(2001-12-19 08:41) [12]

Еще хинт:
В коде, приведенном "cdaDmitriy © (XNUMX XNUMX:XNUMX)" XNUMX ошибки.
XNUMX. В имени директории конечный "\" - лишний.
XNUMX. Проверка открылся ли файл должна выполняться проверкой на INVALID_HANDLE_VALUE, а не <XNUMX. В текущей версии Delphi и WinAPI Integer(INVALID_HANDLE_VALUE) конечно <XNUMX, но это может поменяться, к тому-же, теоретически возможно появление корректного Handle, такого, что Integer(Handle)<XNUMX.
XNUMX. Для проверки ошибок WinAPI - удобнее писать
WinXNUMXCheck(H<>INVALID_HANDLE_VALUE)

> Art © (XNUMX XNUMX:XNUMX)
Если MSDN смущает - смотри в SDK help, это собственно усеченная версия MSDN-а. А из Delphi все API прекрасно вызывается.



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

> Алексей Петров ©

XNUMX. В имени директории конечный "\" - лишний.
он не лишний а избыточный :

lpFileName

Points to a null-terminated string that specifies the name of the object (file, pipe, mailslot, communications resource, disk device, console, or directory) to create or open.

If *lpFileName is a path, there is a default string size limit of MAX_PATH characters. This limit is related to how the CreateFile function parses paths.
Windows NT: You can use paths longer than MAX_PATH characters by calling the wide (W) version of CreateFile and prepending "\\?\" to the path. The "\\?\" tells the function to turn off path parsing. This lets you use paths that are nearly XNUMX Unicode characters long. You must use fully-qualified paths with this technique. This also works with UNC names. The "\\?\" is ignored as part of the path. For example, "\\?\C:\myworld\private" is seen as "C:\myworld\private", and "\\?\UNC\tom_XNUMX\hotstuff\coolapps" is seen as "\\tom_XNUMX\hotstuff\coolapps".

XNUMX. посмотри реализацию unit Classes; хотя
WinXNUMXCheck(H<>INVALID_HANDLE_VALUE) надежней.


{ TFileStream }

constructor TFileStream.Create(const FileName: string; Mode: Word);
开始
if Mode = fmCreate then
开始
FHandle := FileCreate(FileName);
if FHandle < XNUMX then
raise EFCreateError.CreateResFmt(@SFCreateError, [FileName]);
end else
开始
FHandle := FileOpen(FileName, Mode);
if FHandle < XNUMX then
raise EFOpenError.CreateResFmt(@SFOpenError, [FileName]);
结束;
结束;

Art © все работает если хочешь пиши пришлю




Страницы: 1 整个分支

论坛:“主要”;
当前存档:2002.01.08;
下载:[xml.tar.bz2];

楼上

Top.Mail.Ru Yandeks.Metrika













内存:0.8 MB
时间:0.759 c
14-22390
小平头
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
Слушай Мерлин, ты когда нибудь спишь? В смысле, отдыхаешь?


14-22398
JEY
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
Тут вот приспичило IRC клиент сделать ....


6-22293
Dark_Dan
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
Sockets must die!!!!!!!


14-22333
尼古拉
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
$$$$$$$$$$$$$$$$$$$$$$$$$$


4-22472
尤金
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
如何制作你的小代理服务器?





南非荷兰语 阿尔巴尼亚人 阿拉伯语 亚美尼亚 阿塞拜疆 巴斯克 白俄罗斯 保加利亚语 加泰罗尼亚 简体中文 中国(繁体) 克罗地亚 捷克 丹麦语 荷兰人 英语 爱沙尼亚语 菲律宾人 芬兰 法文
加利亚西语 格鲁吉亚语 德语 希腊语 海地克里奥尔语 希伯来语 印地语 匈牙利 北日耳曼语 印度尼西亚人 爱尔兰语 意大利语 日语 韩语 拉脱维亚 立陶宛 马其顿 马来语 马耳他语 挪威语
波斯语 波兰语 葡萄牙语 罗马尼亚 俄语 塞尔维亚 斯洛伐克 斯洛文尼亚 西班牙语 斯瓦希里 瑞典语 泰国人 土耳其 乌克兰 乌尔都语 越南人 威尔士语 意第绪语 孟加拉 波斯尼亚
宿务 世界语 古吉拉特语 豪萨语 苗族 伊博 爪哇 卡纳达语 高棉 老挝 拉丁语 毛利 马拉 蒙古人 尼泊尔 旁遮普 索马里 泰米尔人 泰卢固语 约鲁巴语
祖鲁
英文 Французский Немецкий Итальянский Португальский 俄文 Испанский