Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
ВнизФайл или каталог. Найти похожие ветки
← →
Wood (2006-03-14 03:01) [0]Что-то сообразить не могу: как узнать в строке пути к чему либо на конце строки файл или каталог?
Спсибо.
← →
Джо © (2006-03-14 03:05) [1]GetFileAttribute с проверкой на вхождение атрибута faDirectory сойдет?
← →
Германн © (2006-03-14 03:21) [2]
> Джо © (14.03.06 03:05) [1]
>
> GetFileAttribute с проверкой на вхождение атрибута faDirectory
> сойдет?
Может быть сойдёт.
Но не уверен, что автор сабжа сможет это "сообразить".
Токмо вот
> как узнать в строке пути к чему либо на конце строки
- смущает.
← →
Wood (2006-03-14 05:46) [3]Ну, может туплю, конечно, но я сначала использовал DirectoryExists() и FileExists(), но потом понял, что это не совсем то, что мне нужно. Поэтому, спасибо за совет - "GetFileAttribute". Посмотрю с чем это едят :)
← →
Wood (2006-03-14 06:16) [4]FILE_ATTRIBUTE_ARCHIVE: получаем результат функции GetFileAttributes() - при наличии в пути файла с атрибутом "архивный"
FILE_ATTRIBUTE_DIRECTORY: результат - каталог.
Но вот незадача! Если в конце пути попадается каталог с русскими символами, например,
X:\Documents and Settings\MyProfile\Мои документы\Папка обмена\my.txt - определяется - FILE_ATTRIBUTE_ARCHIVE,
а X:\Documents and Settings\MyProfile\Мои документы\Папка обмена\ -
не определяется FILE_ATTRIBUTE_DIRECTORY!
Или ...не уверен, что автор сабжа сможет это "сообразить".
← →
balepa © (2006-03-14 07:26) [5]У всех работает (мож не у всех но у меня точно работает). Код покажи
← →
Wood (2006-03-14 07:34) [6]Edit1.Text:="X:\Documents and Settings\MyProfile\Мои документы\Папка обмена\my.txt" - результат FILE_ATTRIBUTE_ARCHIVE
;
try
case GetFileAttributes(PChar(Edit1.text)) of
FILE_ATTRIBUTE_ARCHIVE: Label1.Caption:="FILE_ATTRIBUTE_ARCHIVE";
FILE_ATTRIBUTE_COMPRESSED: Label1.Caption:="FILE_ATTRIBUTE_COMPRESSED";
FILE_ATTRIBUTE_DIRECTORY: Label1.Caption:= "FILE_ATTRIBUTE_DIRECTORY";
FILE_ATTRIBUTE_HIDDEN: Label1.Caption:= "FILE_ATTRIBUTE_HIDDEN";
FILE_ATTRIBUTE_NORMAL: Label1.Caption:= "FILE_ATTRIBUTE_NORMAL";
FILE_ATTRIBUTE_OFFLINE: Label1.Caption:= "FILE_ATTRIBUTE_OFFLINE";
FILE_ATTRIBUTE_READONLY: Label1.Caption:= "FILE_ATTRIBUTE_READONLY";
FILE_ATTRIBUTE_SYSTEM: Label1.Caption:= "FILE_ATTRIBUTE_SYSTEM";
FILE_ATTRIBUTE_TEMPORARY: Label1.Caption:= "FILE_ATTRIBUTE_TEMPORARY";
end;{case}
except
end;
Edit1.Text:="X:\Documents and Settings\MyProfile\Мои документы\Папка обмена\" - результата в case нет.
← →
Wood (2006-03-14 07:40) [7]предупреждая вопрос о наличии файла/папки - отвечаю: они реально имеются на диске (выбирал из OpenDialog"a)
← →
Virgo_Style © (2006-03-14 07:51) [8]убери слэш
← →
balepa © (2006-03-14 08:31) [9]
> Virgo_Style © (14.03.06 07:51) [8]
> убери слэш
Без разницы (но попробуй на всякий случай)
> Edit1.Text:="X:\Documents and Settings\MyProfile\Мои документы\Папка
> обмена\" - результата в case нет.
Только с этой папкой ?
← →
Wood (2006-03-14 09:05) [10]
> Без разницы (но попробуй на всякий случай)
да, без разницы.
> Только с этой папкой ?
>
Пока с другими не пробовал, сейчас...
← →
Wood (2006-03-14 09:35) [11]из-за каталога Documents and Settings, видимо, глючит.
Другие папки попробовал с русскими названиями, вроде работает.
В любом случае, спасибо за помощь.
← →
Wood (2006-03-14 09:39) [12]не, "Мои документы", или подобные каталоги с русским названием в "Documents and Settings", что ли...
← →
Джо © (2006-03-14 10:30) [13]
> Woodfunction IsDirectrory (Path: string): Boolean;
begin
Result := GetFileAttributes(PChar(Path)) and faDirectory <> 0
end;
← →
Wood (2006-03-14 10:51) [14]>Джо [13]
извините, я все же не понял faDirectory - это где и что?
А как из приведенной Вами функции я узнаю каталог это или файл?
Ну, Wood я...:)
← →
Wood (2006-03-14 10:57) [15]при проверке faDirectory возвращает 16 иногда 17 а иногда 32 (когда каталог, по-моему)...?
← →
Wood (2006-03-14 11:00) [16]Но вообщем-то я понял!
<> 0 - каталог, иначе - файл. Так?
Спасибо огромное!
← →
Джо © (2006-03-14 11:03) [17]
> извините, я все же не понял faDirectory - это где и что?
Можешь заменить на FILE_ATTRIBUTE_DIRECTORY.
---
> А как из приведенной Вами функции я узнаю каталог это или
> файл?
Вызвав эту функцию и передав ей в параметре путь к файлу или директории.
Например,if IsDirectory ("d:\temp") then
ShowMessage ("Папка")
else
ShowMessage ("Файл");
← →
Плохиш © (2006-03-14 11:06) [18]
> Wood (14.03.06 07:34) [6]
> Wood (14.03.06 11:00) [16]
Интересно, за 3,5 часа можно было справку наизусть выучить.
← →
Wood (2006-03-14 11:08) [19]все-таки сам не сообразил я [2]... конфуз..:(
← →
Wood (2006-03-14 11:10) [20]
> Плохиш © (14.03.06 11:06) [18]
Если б я только этим был сейчас занят, то да :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.055 c