Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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]


> Wood  


function 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
15-1141643051
Kaban
2006-03-06 14:04
2006.03.26
Пиксел


2-1142136727
setis
2006-03-12 07:12
2006.03.26
Погогите сделать SELECT


2-1141994458
jeka_t
2006-03-10 15:40
2006.03.26
Как определить текущий TDBGrid.Row при событии DrawColumnCell?


1-1140416878
V.exeR
2006-02-20 09:27
2006.03.26
Корзина (Recycled)


4-1136451699
Uran
2006-01-05 12:01
2006.03.26
Добавить свой контрол в заголовок чужого окна.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский