Jump to content

Qt for HarmonyOS/qtohosextras doc/FileShare Namespace: Difference between revisions

From Qt Wiki
Created page with "<!-- Source: qtohosextras-fileshare.html --> <span id="fileshare-namespace"></span> = FileShare Namespace = <span class="small-subtitle">(QtOhosExtras::FileShare)<br /> </span> The FileShare to expose file permission API. More... <div class="table"> {| class="wikitable alignedsummary" |- | class="memItemLeft rightAlign topAlign"| Header: |..."
 
Drop manual breadcrumb, MediaWiki renders it automatically (QTFOROH-2307)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<!-- Source: qtohosextras-fileshare.html -->
<span id="fileshare-namespace"></span>
= FileShare Namespace =
= FileShare Namespace =


<span class="small-subtitle">([[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace|QtOhosExtras::FileShare]])<br />
QtOhosExtras::FileShare
</span>


The [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace|FileShare]] to expose file permission API. [[#details|More...]]
The FileShare to expose file permission API. [[#details|More...]]


<div class="table">
{| class="wikitable"
 
{| class="wikitable alignedsummary"
|-
|-
| class="memItemLeft rightAlign topAlign"| Header:
| Header:
| class="memItemRight bottomAlign"| <span class="preprocessor">#include </span>
| #include <FileShare>
|-
|-
| class="memItemLeft rightAlign topAlign"| qmake:
| qmake:
| class="memItemRight bottomAlign"| QT += ohosextras
| QT += ohosextras
|-
|-
| class="memItemLeft rightAlign topAlign"| Since:
| Since:
| class="memItemRight bottomAlign"| Qt 5.12.12
| Qt 5.12.12
|}
|}


This namespace was introduced in Qt 5.12.12.


</div>
<span id="classes"></span>
<span id="classes"></span>
== Classes ==
== Classes ==


<div class="table">
{| class="wikitable"
 
{| class="wikitable alignedsummary"
|-
|-
| class="memItemLeft rightAlign topAlign"| class
| class
| class="memItemRight bottomAlign"| '''[[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]]'''
| '''[[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]]'''
|-
|-
| class="memItemLeft rightAlign topAlign"| class
| class
| class="memItemRight bottomAlign"| '''[[Qt_for_HarmonyOS/qtohosextras_doc/CheckResult_Class|CheckResult]]'''
| '''[[Qt_for_HarmonyOS/qtohosextras_doc/CheckResult_Class|CheckResult]]'''
|-
|-
| class="memItemLeft rightAlign topAlign"| class
| struct
| class="memItemRight bottomAlign"| '''[[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]]'''
| '''[[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]]'''
|-
|-
| class="memItemLeft rightAlign topAlign"| class
| struct
| class="memItemRight bottomAlign"| '''[[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicyCheckResult_Class|PathPolicyCheckResult]]'''
| '''[[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicyCheckResult_Class|PathPolicyCheckResult]]'''
|-
|-
| class="memItemLeft rightAlign topAlign"| class
| struct
| class="memItemRight bottomAlign"| '''[[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicyErrorInfo_Class|PathPolicyErrorInfo]]'''
| '''[[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicyErrorInfo_Class|PathPolicyErrorInfo]]'''
|}
|}


</div>
<span id="types"></span>
<span id="types"></span>
== Types ==
== Types ==


<div class="table">
{| class="wikitable"
 
{| class="wikitable alignedsummary"
|-
|-
| class="memItemLeft rightAlign topAlign"| enum
| enum class
| class="memItemRight bottomAlign"| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#OperationMode-enum|OperationMode]]''' { Read, Write }
| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#OperationMode-enum|OperationMode]]''' { Read, Write }
|-
|-
| class="memItemLeft rightAlign topAlign"| flags
| flags
| class="memItemRight bottomAlign"| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#OperationMode-enum|OperationModes]]'''
| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#OperationMode-enum|OperationModes]]'''
|-
|-
| class="memItemLeft rightAlign topAlign"| enum
| enum class
| class="memItemRight bottomAlign"| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#PathPolicyError-enum|PathPolicyError]]''' { Unknown, PersistenceForbidden, InvalidMode, InvalidPath, PermissionNotPersisted }
| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#PathPolicyError-enum|PathPolicyError]]''' { Unknown, PersistenceForbidden, InvalidMode, InvalidPath, PermissionNotPersisted }
|}
|}


</div>
<span id="functions"></span>
<span id="functions"></span>
== Functions ==
== Functions ==


<div class="table">
{| class="wikitable"
 
{| class="wikitable alignedsummary"
|-
|-
| class="memItemLeft rightAlign topAlign"| QSharedPointer
| QSharedPointer<ActionResult>
| class="memItemRight bottomAlign"| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#activatePermission|activatePermission]]'''(const QList &amp;''policies'')
| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#activatePermission|activatePermission]]'''(const QList<PathPolicy> &''policies'')
|-
|-
| class="memItemLeft rightAlign topAlign"| QSharedPointer
| QSharedPointer<CheckResult>
| class="memItemRight bottomAlign"| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#checkPersistent|checkPersistent]]'''(const QList &amp;''policies'')
| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#checkPersistent|checkPersistent]]'''(const QList<PathPolicy> &''policies'')
|-
|-
| class="memItemLeft rightAlign topAlign"| QSharedPointer
| QSharedPointer<ActionResult>
| class="memItemRight bottomAlign"| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#deactivatePermission|deactivatePermission]]'''(const QList &amp;''policies'')
| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#deactivatePermission|deactivatePermission]]'''(const QList<PathPolicy> &''policies'')
|-
|-
| class="memItemLeft rightAlign topAlign"| QSharedPointer
| QSharedPointer<ActionResult>
| class="memItemRight bottomAlign"| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#persistPermission|persistPermission]]'''(const QList &amp;''policies'')
| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#persistPermission|persistPermission]]'''(const QList<PathPolicy> &''policies'')
|-
|-
| class="memItemLeft rightAlign topAlign"| const QMetaObject *
| QSharedPointer<ActionResult>
| class="memItemRight bottomAlign"| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#qt_getEnumMetaObject|qt_getEnumMetaObject]]'''(''QtOhosExtras::FileShare::OperationMode'')
| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#revokePermission|revokePermission]]'''(const QList<PathPolicy> &''policies'')
|-
| class="memItemLeft rightAlign topAlign"| const char *
| class="memItemRight bottomAlign"| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#qt_getEnumName|qt_getEnumName]]'''(''QtOhosExtras::FileShare::OperationMode'')
|-
| class="memItemLeft rightAlign topAlign"| QSharedPointer
| class="memItemRight bottomAlign"| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#revokePermission|revokePermission]]'''(const QList &amp;''policies'')
|-
| class="memItemLeft rightAlign topAlign"| QFlags
| class="memItemRight bottomAlign"| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#operator-7c|operator|]]'''(OperationModes::enum_type ''f1'', OperationModes::enum_type ''f2'')
|-
| class="memItemLeft rightAlign topAlign"| QFlags
| class="memItemRight bottomAlign"| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#operator-7c-1|operator|]]'''(OperationModes::enum_type ''f1'', QFlags ''f2'')
|-
| class="memItemLeft rightAlign topAlign"| QIncompatibleFlag
| class="memItemRight bottomAlign"| '''[[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#operator-7c-2|operator|]]'''(OperationModes::enum_type ''f1'', int ''f2'')
|}
|}


</div>
<span id="details"></span>
<div class="descr">
<span id="details"></span>
== Detailed Description ==
== Detailed Description ==
The [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace|FileShare]] to expose file permission API.


This API uses file system paths, which differ from the URIs used internally by HarmonyOS. For example, the path <code>/data/storage/el1/bundle/entry/resources/resfile/test.txt</code> will be converted to the URI <code>file://com.your.example/data/storage/el1/bundle/entry/resources/resfile/test.txt</code> , where <code>com.your.example</code> is app bundle name.
This API uses file system paths, which differ from the URIs used internally by HarmonyOS. For example, the path <code>/data/storage/el1/bundle/entry/resources/resfile/test.txt</code> will be converted to the URI <code>file://com.your.example/data/storage/el1/bundle/entry/resources/resfile/test.txt</code> , where <code>com.your.example</code> is app bundle name.
Line 129: Line 79:
To learn more about file paths and URIs in HarmonyOS, see [https://developer.huawei.com/consumer/en/doc/harmonyos-guides-V5/app-sandbox-directory-V5 sandbox documentation].
To learn more about file paths and URIs in HarmonyOS, see [https://developer.huawei.com/consumer/en/doc/harmonyos-guides-V5/app-sandbox-directory-V5 sandbox documentation].


'''Warning:''' This API relies on the underlying OHOS implementation. The following functions: [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#persistPermission|persistPermission]](), [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#revokePermission|revokePermission]](), [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#activatePermission|activatePermission]](), [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#deactivatePermission|deactivatePermission]](), and [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#checkPersistent|checkPersistent]]() may be unavailable on some devices. Additionally, there may be limitations on the maximum number of policies, and certain permissions may need to be explicitly granted to the application.
'''Warning: '''This API relies on the underlying OHOS implementation. The following functions: [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#persistPermission|persistPermission]](), [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#revokePermission|revokePermission]](), [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#activatePermission|activatePermission]](), [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#deactivatePermission|deactivatePermission]](), and [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#checkPersistent|checkPersistent]]() may be unavailable on some devices. Additionally, there may be limitations on the maximum number of policies, and certain permissions may need to be explicitly granted to the application.


For more details and limitations, refer to the [https://developer.huawei.com/consumer/en/doc/harmonyos-guides-V14/native-fileshare-guidelines-V14 API documentation].
For more details and limitations, refer to the [https://developer.huawei.com/consumer/en/doc/harmonyos-guides-V14/native-fileshare-guidelines-V14 API documentation].


</div>
<div class="classes">
<span id="classes-1"></span>
== Classes ==
== Classes ==


<span id="class-actionresult"></span>
=== class [[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]] ===
=== class [[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]] ===


The [[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]] class encapsulates the result of all file requested access permission actions. [[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class#details|More...]]
The ActionResult class encapsulates the result of all file requested access permission actions. [[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class#details|More...]]


<span id="class-checkresult"></span>
=== class [[Qt_for_HarmonyOS/qtohosextras_doc/CheckResult_Class|CheckResult]] ===
=== class [[Qt_for_HarmonyOS/qtohosextras_doc/CheckResult_Class|CheckResult]] ===


The [[Qt_for_HarmonyOS/qtohosextras_doc/CheckResult_Class|CheckResult]] class encapsulates the result of all requested file access permission checks. [[Qt_for_HarmonyOS/qtohosextras_doc/CheckResult_Class#details|More...]]
The CheckResult class encapsulates the result of all requested file access permission checks. [[Qt_for_HarmonyOS/qtohosextras_doc/CheckResult_Class#details|More...]]


<span id="class-pathpolicy"></span>
=== class [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]] ===
=== class [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]] ===


The [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]] struct encapsulates information required to request file access permissions for a specified path. [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class#details|More...]]
The PathPolicy struct encapsulates information required to request file access permissions for a specified path. [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class#details|More...]]


<span id="class-pathpolicycheckresult"></span>
=== class [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicyCheckResult_Class|PathPolicyCheckResult]] ===
=== class [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicyCheckResult_Class|PathPolicyCheckResult]] ===


The [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicyCheckResult_Class|PathPolicyCheckResult]] struct contains the result of a file permission check request for a specified path, indicating whether access is granted or denied. [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicyCheckResult_Class#details|More...]]
The PathPolicyCheckResult struct contains the result of a file permission check request for a specified path, indicating whether access is granted or denied. [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicyCheckResult_Class#details|More...]]


<span id="class-pathpolicyerrorinfo"></span>
=== class [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicyErrorInfo_Class|PathPolicyErrorInfo]] ===
=== class [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicyErrorInfo_Class|PathPolicyErrorInfo]] ===


The [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicyErrorInfo_Class|PathPolicyErrorInfo]] struct contains the result of a file access permission request for a specified path. [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicyErrorInfo_Class#details|More...]]
The PathPolicyErrorInfo struct contains the result of a file access permission request for a specified path. [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicyErrorInfo_Class#details|More...]]


</div>
<div class="types">
<span id="type-documentation"></span>
== Type Documentation ==
== Type Documentation ==


<span id="OperationMode-enum"></span>
=== <span id="OperationMode-enum"></span>enum class FileShare::OperationMode<br/>flags FileShare::OperationModes ===
=== <span id="OperationMode-enum"></span>enum FileShare::<span class="name">OperationMode</span><br />
flags FileShare::<span class="name">OperationModes</span> ===


Defines permissions on path. See [https://developer.huawei.com/consumer/en/doc/harmonyos-references-V5/file_share-V5#fileshare_operationmode FileShare_OperationMode]. The flags can be combined using bitwise operations.
Defines permissions on path. See [https://developer.huawei.com/consumer/en/doc/harmonyos-references-V5/file_share-V5#fileshare_operationmode FileShare_OperationMode]. The flags can be combined using bitwise operations.


<div class="table">
{| class="wikitable"
 
|-
{| class="wikitable valuelist"
! Constant
|- class="odd" valign="top"
! Value
! class="tblConst"| Constant
! Description
! class="tblval"| Value
! class="tbldscr"| Description
|-
|-
| class="topAlign"| <code>QtOhosExtras::FileShare::Read</code>
| <code>QtOhosExtras::FileShare::OperationMode::Read</code>
| class="topAlign tblval"| <code>1 &lt;&lt; 0</code>
| <code>1 << 0</code>
| class="topAlign"| Read on path
| Read on path
|-
|-
| class="topAlign"| <code>QtOhosExtras::FileShare::Write</code>
| <code>QtOhosExtras::FileShare::OperationMode::Write</code>
| class="topAlign tblval"| <code>1 &lt;&lt; 1</code>
| <code>1 << 1</code>
| class="topAlign"| Write on path
| Write on path
|}
|}


</div>
This enum was introduced or modified in Qt 5.12.12.
This enum was introduced or modified in Qt 5.12.12.


The OperationModes type is a typedef for [[../qtcore/qflags.html|QFlags]]. It stores an OR combination of OperationMode values.
The OperationModes type is a typedef for [https://doc.qt.io/qt-5/qflags.html QFlags]<OperationMode>. It stores an OR combination of OperationMode values.


'''See also''' [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]].
'''See also '''[[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]].


<span id="PathPolicyError-enum"></span>
=== <span id="PathPolicyError-enum"></span>enum class FileShare::PathPolicyError ===
=== <span id="PathPolicyError-enum"></span>enum FileShare::<span class="name">PathPolicyError</span> ===


Defines permission policy error codes. See [https://developer.huawei.com/consumer/en/doc/harmonyos-references-V5/file_share-V5#fileshare_policyerrorcode FileShare_PolicyErrorCode].
Defines permission policy error codes. See [https://developer.huawei.com/consumer/en/doc/harmonyos-references-V5/file_share-V5#fileshare_policyerrorcode FileShare_PolicyErrorCode].


<div class="table">
{| class="wikitable"
 
|-
{| class="wikitable valuelist"
! Constant
|- class="odd" valign="top"
! Value
! class="tblConst"| Constant
! Description
! class="tblval"| Value
! class="tbldscr"| Description
|-
|-
| class="topAlign"| <code>QtOhosExtras::FileShare::Unknown</code>
| <code>QtOhosExtras::FileShare::PathPolicyError::Unknown</code>
| class="topAlign tblval"| <code>0</code>
| <code>0</code>
| class="topAlign"| Error type is unknown or not recognized
| Error type is unknown or not recognized
|-
|-
| class="topAlign"| <code>QtOhosExtras::FileShare::PersistenceForbidden</code>
| <code>QtOhosExtras::FileShare::PathPolicyError::PersistenceForbidden</code>
| class="topAlign tblval"| <code>1</code>
| <code>1</code>
| class="topAlign"| The permission on the path cannot be persisted
| The permission on the path cannot be persisted
|-
|-
| class="topAlign"| <code>QtOhosExtras::FileShare::InvalidMode</code>
| <code>QtOhosExtras::FileShare::PathPolicyError::InvalidMode</code>
| class="topAlign tblval"| <code>2</code>
| <code>2</code>
| class="topAlign"| Invalid operation mode
| Invalid operation mode
|-
|-
| class="topAlign"| <code>QtOhosExtras::FileShare::InvalidPath</code>
| <code>QtOhosExtras::FileShare::PathPolicyError::InvalidPath</code>
| class="topAlign tblval"| <code>3</code>
| <code>3</code>
| class="topAlign"| Invalid path
| Invalid path
|-
|-
| class="topAlign"| <code>QtOhosExtras::FileShare::PermissionNotPersisted</code>
| <code>QtOhosExtras::FileShare::PathPolicyError::PermissionNotPersisted</code>
| class="topAlign tblval"| <code>4</code>
| <code>4</code>
| class="topAlign"| The permission is not persisted
| The permission is not persisted
|}
|}


</div>
This enum was introduced or modified in Qt 5.12.12.
This enum was introduced or modified in Qt 5.12.12.


'''See also''' [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicyErrorInfo_Class|PathPolicyErrorInfo]].
'''See also '''[[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicyErrorInfo_Class|PathPolicyErrorInfo]].


</div>
<div class="func">
<span id="function-documentation"></span>
== Function Documentation ==
== Function Documentation ==


<span id="activatePermission"></span>
=== <span id="activatePermission"></span>[https://doc.qt.io/qt-5/qsharedpointer.html QSharedPointer]<[[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]]> FileShare::activatePermission(const [https://doc.qt.io/qt-5/qlist.html QList]<[[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]]> &''policies'') ===
=== activatePermission ===
 
<syntaxhighlight lang="cpp">
QSharedPointer<QtOhosExtras::FileShare::ActionResult> FileShare::activatePermission(const QList<QtOhosExtras::FileShare::PathPolicy> &''policies'')
</syntaxhighlight>


Activates file or folder permissions from ''policies''. The success of the action can be determined from [[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]].
Activates file or folder permissions from ''policies''. The success of the action can be determined from [[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]].
Line 263: Line 177:
To deactivate an active permission, use [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#deactivatePermission|deactivatePermission]]().
To deactivate an active permission, use [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#deactivatePermission|deactivatePermission]]().


'''See also''' [[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]], [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]], [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#persistPermission|persistPermission]](), and [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#deactivatePermission|deactivatePermission]]().
'''See also '''[[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]], [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]], [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#persistPermission|persistPermission]](), and [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#deactivatePermission|deactivatePermission]]().
 
<span id="checkPersistent"></span>
=== checkPersistent ===


<syntaxhighlight lang="cpp">
=== <span id="checkPersistent"></span>[https://doc.qt.io/qt-5/qsharedpointer.html QSharedPointer]<[[Qt_for_HarmonyOS/qtohosextras_doc/CheckResult_Class|CheckResult]]> FileShare::checkPersistent(const [https://doc.qt.io/qt-5/qlist.html QList]<[[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]]> &''policies'') ===
QSharedPointer<QtOhosExtras::FileShare::CheckResult> FileShare::checkPersistent(const QList<QtOhosExtras::FileShare::PathPolicy> &''policies'')
</syntaxhighlight>


Checks if file or folder permissions from ''policies'' have persistent permissions. The result check for each file or folder can be determined from [[Qt_for_HarmonyOS/qtohosextras_doc/CheckResult_Class|CheckResult]]. CheckResult::PathPolicyCheckResult::result will be set to <code>true</code> for each file or folder only for succesufull check and persistent permission found, <code>false</code> otherwise.
Checks if file or folder permissions from ''policies'' have persistent permissions. The result check for each file or folder can be determined from [[Qt_for_HarmonyOS/qtohosextras_doc/CheckResult_Class|CheckResult]]. CheckResult::PathPolicyCheckResult::result will be set to <code>true</code> for each file or folder only for succesufull check and persistent permission found, <code>false</code> otherwise.
Line 278: Line 187:
To persist permission, use [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#persistPermission|persistPermission]]().
To persist permission, use [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#persistPermission|persistPermission]]().


'''See also''' [[Qt_for_HarmonyOS/qtohosextras_doc/CheckResult_Class|CheckResult]], [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]], and [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#persistPermission|persistPermission]]().
'''See also '''[[Qt_for_HarmonyOS/qtohosextras_doc/CheckResult_Class|CheckResult]], [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]], and [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#persistPermission|persistPermission]]().
 
<span id="deactivatePermission"></span>
=== deactivatePermission ===


<syntaxhighlight lang="cpp">
=== <span id="deactivatePermission"></span>[https://doc.qt.io/qt-5/qsharedpointer.html QSharedPointer]<[[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]]> FileShare::deactivatePermission(const [https://doc.qt.io/qt-5/qlist.html QList]<[[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]]> &''policies'') ===
QSharedPointer<QtOhosExtras::FileShare::ActionResult> FileShare::deactivatePermission(const QList<QtOhosExtras::FileShare::PathPolicy> &''policies'')
</syntaxhighlight>


Deactivates file or folder permissions from ''policies''. The success of the action can be determined from [[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]].
Deactivates file or folder permissions from ''policies''. The success of the action can be determined from [[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]].
Line 293: Line 197:
To activate permission, use [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#activatePermission|activatePermission]]().
To activate permission, use [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#activatePermission|activatePermission]]().


'''See also''' [[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]], [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]], and [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#activatePermission|activatePermission]]().
'''See also '''[[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]], [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]], and [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#activatePermission|activatePermission]]().


<span id="persistPermission"></span>
=== <span id="persistPermission"></span>[https://doc.qt.io/qt-5/qsharedpointer.html QSharedPointer]<[[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]]> FileShare::persistPermission(const [https://doc.qt.io/qt-5/qlist.html QList]<[[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]]> &''policies'') ===
=== persistPermission ===
 
<syntaxhighlight lang="cpp">
QSharedPointer<QtOhosExtras::FileShare::ActionResult> FileShare::persistPermission(const QList<QtOhosExtras::FileShare::PathPolicy> &''policies'')
</syntaxhighlight>


Persists file or folder permissions from ''policies''. The success of the action can be determined from [[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]].
Persists file or folder permissions from ''policies''. The success of the action can be determined from [[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]].
Line 308: Line 207:
To revoke a persistent permission, use [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#revokePermission|revokePermission]]().
To revoke a persistent permission, use [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#revokePermission|revokePermission]]().


'''See also''' [[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]], [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]], [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#revokePermission|revokePermission]](), and [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#activatePermission|activatePermission]]().
'''See also '''[[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]], [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]], [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#revokePermission|revokePermission]](), and [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#activatePermission|activatePermission]]().
 
<span id="qt_getEnumMetaObject"></span>
=== <span id="qt_getEnumMetaObject"></span>const <span class="type">[[../qtcore/qmetaobject.html|QMetaObject]]</span> *FileShare::<span class="name">qt_getEnumMetaObject</span>(''QtOhosExtras::FileShare::OperationMode'') ===
 
<span id="qt_getEnumName"></span>
=== <span id="qt_getEnumName"></span>const <span class="type">char</span> *FileShare::<span class="name">qt_getEnumName</span>(''QtOhosExtras::FileShare::OperationMode'') ===


<span id="revokePermission"></span>
=== <span id="revokePermission"></span>[https://doc.qt.io/qt-5/qsharedpointer.html QSharedPointer]<[[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]]> FileShare::revokePermission(const [https://doc.qt.io/qt-5/qlist.html QList]<[[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]]> &''policies'') ===
=== revokePermission ===
 
<syntaxhighlight lang="cpp">
QSharedPointer<QtOhosExtras::FileShare::ActionResult> FileShare::revokePermission(const QList<QtOhosExtras::FileShare::PathPolicy> &''policies'')
</syntaxhighlight>


Revokes file or folder permissions from ''policies''. The success of the action can be determined from [[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]].
Revokes file or folder permissions from ''policies''. The success of the action can be determined from [[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]].
Line 329: Line 217:
To persist permission, use [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#persistPermission|persistPermission]]().
To persist permission, use [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#persistPermission|persistPermission]]().


'''See also''' [[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]], [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]], and [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#persistPermission|persistPermission]]().
'''See also '''[[Qt_for_HarmonyOS/qtohosextras_doc/ActionResult_Class|ActionResult]], [[Qt_for_HarmonyOS/qtohosextras_doc/PathPolicy_Class|PathPolicy]], and [[Qt_for_HarmonyOS/qtohosextras_doc/FileShare_Namespace#persistPermission|persistPermission]]().
 
<span id="operator-7c"></span>
=== Function ===
 
<syntaxhighlight lang="cpp">
QFlags<OperationModes::enum_type> FileShare::operator|(OperationModes::enum_type ''f1'', OperationModes::enum_type ''f2'')
</syntaxhighlight>
 
<span id="operator-7c-1"></span>
=== Function ===
 
<syntaxhighlight lang="cpp">
QFlags<OperationModes::enum_type> FileShare::operator|(OperationModes::enum_type ''f1'', QFlags<OperationModes::enum_type> ''f2'')
</syntaxhighlight>
 
<span id="operator-7c-2"></span>
=== <span id="operator-7c-2"></span><span class="type">[[../qtcore/qincompatibleflag.html|QIncompatibleFlag]]</span> FileShare::<span class="name">operator|</span>(<span class="type">OperationModes::enum_type</span> ''f1'', <span class="type">int</span> ''f2'') ===
 


</div>
[[Category:Qt for HarmonyOS]]

Latest revision as of 05:30, 17 September 2026

FileShare Namespace

QtOhosExtras::FileShare

The FileShare to expose file permission API. More...

Header: #include <FileShare>
qmake: QT += ohosextras
Since: Qt 5.12.12

This namespace was introduced in Qt 5.12.12.

Classes

class ActionResult
class CheckResult
struct PathPolicy
struct PathPolicyCheckResult
struct PathPolicyErrorInfo

Types

enum class OperationMode { Read, Write }
flags OperationModes
enum class PathPolicyError { Unknown, PersistenceForbidden, InvalidMode, InvalidPath, PermissionNotPersisted }

Functions

QSharedPointer<ActionResult> activatePermission(const QList<PathPolicy> &policies)
QSharedPointer<CheckResult> checkPersistent(const QList<PathPolicy> &policies)
QSharedPointer<ActionResult> deactivatePermission(const QList<PathPolicy> &policies)
QSharedPointer<ActionResult> persistPermission(const QList<PathPolicy> &policies)
QSharedPointer<ActionResult> revokePermission(const QList<PathPolicy> &policies)

Detailed Description

This API uses file system paths, which differ from the URIs used internally by HarmonyOS. For example, the path /data/storage/el1/bundle/entry/resources/resfile/test.txt will be converted to the URI file://com.your.example/data/storage/el1/bundle/entry/resources/resfile/test.txt , where com.your.example is app bundle name.

To learn more about file paths and URIs in HarmonyOS, see sandbox documentation.

Warning: This API relies on the underlying OHOS implementation. The following functions: persistPermission(), revokePermission(), activatePermission(), deactivatePermission(), and checkPersistent() may be unavailable on some devices. Additionally, there may be limitations on the maximum number of policies, and certain permissions may need to be explicitly granted to the application.

For more details and limitations, refer to the API documentation.

Classes

class ActionResult

The ActionResult class encapsulates the result of all file requested access permission actions. More...

class CheckResult

The CheckResult class encapsulates the result of all requested file access permission checks. More...

class PathPolicy

The PathPolicy struct encapsulates information required to request file access permissions for a specified path. More...

class PathPolicyCheckResult

The PathPolicyCheckResult struct contains the result of a file permission check request for a specified path, indicating whether access is granted or denied. More...

class PathPolicyErrorInfo

The PathPolicyErrorInfo struct contains the result of a file access permission request for a specified path. More...

Type Documentation

enum class FileShare::OperationMode
flags FileShare::OperationModes

Defines permissions on path. See FileShare_OperationMode. The flags can be combined using bitwise operations.

Constant Value Description
QtOhosExtras::FileShare::OperationMode::Read 1 << 0 Read on path
QtOhosExtras::FileShare::OperationMode::Write 1 << 1 Write on path

This enum was introduced or modified in Qt 5.12.12.

The OperationModes type is a typedef for QFlags<OperationMode>. It stores an OR combination of OperationMode values.

See also PathPolicy.

enum class FileShare::PathPolicyError

Defines permission policy error codes. See FileShare_PolicyErrorCode.

Constant Value Description
QtOhosExtras::FileShare::PathPolicyError::Unknown 0 Error type is unknown or not recognized
QtOhosExtras::FileShare::PathPolicyError::PersistenceForbidden 1 The permission on the path cannot be persisted
QtOhosExtras::FileShare::PathPolicyError::InvalidMode 2 Invalid operation mode
QtOhosExtras::FileShare::PathPolicyError::InvalidPath 3 Invalid path
QtOhosExtras::FileShare::PathPolicyError::PermissionNotPersisted 4 The permission is not persisted

This enum was introduced or modified in Qt 5.12.12.

See also PathPolicyErrorInfo.

Function Documentation

QSharedPointer<ActionResult> FileShare::activatePermission(const QList<PathPolicy> &policies)

Activates file or folder permissions from policies. The success of the action can be determined from ActionResult.

This function calls OH_FileShare_ActivatePermission. Each time an application is started, its persistent permissions have not been loaded to the memory. Use this function to make a persistent permission active after the application is started. If the activation fails because the permission has not been persisted, use persistPermission() first.

To deactivate an active permission, use deactivatePermission().

See also ActionResult, PathPolicy, persistPermission(), and deactivatePermission().

QSharedPointer<CheckResult> FileShare::checkPersistent(const QList<PathPolicy> &policies)

Checks if file or folder permissions from policies have persistent permissions. The result check for each file or folder can be determined from CheckResult. CheckResult::PathPolicyCheckResult::result will be set to true for each file or folder only for succesufull check and persistent permission found, false otherwise.

This function calls OH_FileShare_CheckPersistentPermission.

To persist permission, use persistPermission().

See also CheckResult, PathPolicy, and persistPermission().

QSharedPointer<ActionResult> FileShare::deactivatePermission(const QList<PathPolicy> &policies)

Deactivates file or folder permissions from policies. The success of the action can be determined from ActionResult.

This function calls OH_FileShare_DeactivatePermission.

To activate permission, use activatePermission().

See also ActionResult, PathPolicy, and activatePermission().

QSharedPointer<ActionResult> FileShare::persistPermission(const QList<PathPolicy> &policies)

Persists file or folder permissions from policies. The success of the action can be determined from ActionResult.

This function calls OH_FileShare_PersistPermission. persistPermission() stores persistence data in the system database. After persistPermission() call, permissions are not yet active. Use activatePermission() to activate permissions. persistPermission() must be called at least once before activatePermission().

To revoke a persistent permission, use revokePermission().

See also ActionResult, PathPolicy, revokePermission(), and activatePermission().

QSharedPointer<ActionResult> FileShare::revokePermission(const QList<PathPolicy> &policies)

Revokes file or folder permissions from policies. The success of the action can be determined from ActionResult.

This function calls OH_FileShare_RevokePermission.

To persist permission, use persistPermission().

See also ActionResult, PathPolicy, and persistPermission().