вы должны использовать
double g=1.0/3;
или
double g=1/3.0;
Целочисленное деление возвращает целое число.
Этот CAML действительно помогает:
<Where>
<Eq>
<FieldRef Name='FSObjType' />
<Value Type='Integer'>0</Value>
</Eq>
</Where>
не дает вам никаких папок.
Так, я понял его:) Можно использовать FieldRef ='ContentType' в caml, запрашивают и определяют typr типа контента, который Вы хотите выбрать или исключить из выбора.
Так в моем случае я добавил это условие к своему caml выражению:
<Neq><FieldRef Name='ContentType' /><Value Type='Text'>Folder</Value></Neq>
ПРИМЕЧАНИЕ: во много установке языка существуют проблемы. Название типа контента может отличаться, таким образом, хорошо получить названия типов контента от ресурсов
ОБНОВЛЕНИЕ:
похоже, что я был слишком быстр в своих предположениях. Я должен отфильтровать все типы contett на основе типа контента папки, потому что в наших проектах такие типы контента используются: (
я не смог создать осуществимый запрос в caml, таким образом, я добавил полевой элемент представления к своему запросу, который выбирает ContentTypeId элемента списка, и я отфильтровываю строки, которые основаны на типе контента папки.
Код, чтобы сделать это тривиально, но он беспокоит меня, что такая простая задача не может быть сделана чистым caml.
Если вы работаете с папками и используете объект SPQuery, вы также можете использовать поле ViewAttributes, чтобы разрешить рекурсивное извлечение элементов. Установка значения в Scope = "Recursive" будет извлекать элементы из подпапок и не будет извлекать объекты папок в наборе результатов.
myQuery.ViewAttributes = "Scope=\"Recursive\"";
Это то, что сработало для меня
<Where>
<Eq>
<FieldRef Name='FSObjType' />
<Value Type='Number'>1</Value>
</Eq>
</Where>