# @ohos.file.picker (File Picker) > **NOTE** > > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. **Picker** encapsulates the system applications such as **PhotoViewPicker**, **DocumentViewPicker** and **AudioViewPicker** to provide capabilities of selecting and saving files of different types. The application can select the picker as required. ## Modules to Import > **NOTE** > > You need to import the **BusinessError** module if **BusinessError** is used in the sample code. ```ts import picker from '@ohos.file.picker'; import { BusinessError } from '@ohos.base'; ``` ## PhotoViewPicker Provides APIs for selecting and saving images and videos. Before using the APIs of **PhotoViewPicker**, you need to create a **PhotoViewPicker** instance. **System capability**: SystemCapability.FileManagement.UserFileService **Example** ```ts let photoPicker = new picker.PhotoViewPicker(); ``` ### select select(option?: PhotoSelectOptions) : Promise<PhotoSelectResult> Selects one or more images or videos in a **photoPicker** page. This API uses a promise to return the result. You can pass in **PhotoSelectOptions** to specify the media file type and the maximum number of files to select. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | -------------------------- | | option | [PhotoSelectOptions](#photoselectoptions) | No | Options for selecting files. If this parameter is not specified, images and videos are selected by default. A maximum of 50 files can be selected.| **Return value** | Type | Description | | ----------------------------- | :---- | | Promise<[PhotoSelectResult](#photoselectresult)> | Promise used to return information about the images or videos selected.| **Example** ```ts async function example01() { try { let PhotoSelectOptions = new picker.PhotoSelectOptions(); PhotoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE; PhotoSelectOptions.maxSelectNumber = 5; let photoPicker = new picker.PhotoViewPicker(); photoPicker.select(PhotoSelectOptions).then((PhotoSelectResult: picker.PhotoSelectResult) => { console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult)); }).catch((err: BusinessError) => { console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err)); } } ``` ### select select(option: PhotoSelectOptions, callback: AsyncCallback<PhotoSelectResult>) : void Selects one or more images or videos in a **photoPicker** page. This API uses an asynchronous callback to return the result. You can pass in **PhotoSelectOptions** to specify the media file type and the maximum number of files to select. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | -------------------------- | | option | [PhotoSelectOptions](#photoselectoptions) | Yes | Options for selecting images or videos.| | callback | AsyncCallback<[PhotoSelectResult](#photoselectresult)> | Yes | Callback invoked to return information about the images or videos selected.| **Example** ```ts async function example02() { try { let PhotoSelectOptions = new picker.PhotoSelectOptions(); PhotoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE; PhotoSelectOptions.maxSelectNumber = 5; let photoPicker = new picker.PhotoViewPicker(); photoPicker.select(PhotoSelectOptions, (err: BusinessError, PhotoSelectResult: picker.PhotoSelectResult) => { if (err) { console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err)); return; } console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err)); } } ``` ### select select(callback: AsyncCallback<PhotoSelectResult>) : void Selects one or more images or videos in a **photoPicker** page. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | -------------------------- | | callback | AsyncCallback<[PhotoSelectResult](#photoselectresult)> | Yes | Callback invoked to return information about the images or videos selected.| **Example** ```ts async function example03() { try { let photoPicker = new picker.PhotoViewPicker(); photoPicker.select((err: BusinessError, PhotoSelectResult: picker.PhotoSelectResult) => { if (err) { console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err)); return; } console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err)); } } ``` ### save save(option?: PhotoSaveOptions) : Promise<Array<string>> Saves one or more images or videos in a **photoPicker** page. This API uses a promise to return the result. You can pass in **PhotoSaveOptions** to specify the file names of the images or videos to save. The **save()** API saves the file in the file manager, not in the Gallery. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | -------------------------- | | option | [PhotoSaveOptions](#photosaveoptions) | No | Options for saving files. If this parameter is not specified, a **photoPicker** page will be displayed for the user to enter the names of the files to save.| **Return value** | Type | Description | | ----------------------------- | :---- | | Promise<Array<string>> | Promise used to return the URIs of the files saved.| **Example** ```ts async function example04() { try { let PhotoSaveOptions = new picker.PhotoSaveOptions(); PhotoSaveOptions.newFileNames = ['PhotoViewPicker01.jpg', 'PhotoViewPicker01.mp4']; let photoPicker = new picker.PhotoViewPicker(); photoPicker.save(PhotoSaveOptions).then((PhotoSaveResult: Array) => { console.info('PhotoViewPicker.save successfully, PhotoSaveResult uri: ' + JSON.stringify(PhotoSaveResult)); }).catch((err: BusinessError) => { console.error('PhotoViewPicker.save failed with err: ' + JSON.stringify(err)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err)); } } ``` ### save save(option: PhotoSaveOptions, callback: AsyncCallback<Array<string>>) : void Saves one or more images or videos in a **photoPicker** page. This API uses an asynchronous callback to return the result. You can pass in **PhotoSaveOptions** to specify the file names of the images or videos to save. The **save()** API saves the file in the file manager, not in the Gallery. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | -------------------------- | | option | [PhotoSaveOptions](#photosaveoptions) | Yes | Options for saving images or videos.| | callback | AsyncCallback<Array<string>> | Yes | Callback invoked to return the URIs of the files saved.| **Example** ```ts async function example05() { try { let PhotoSaveOptions = new picker.PhotoSaveOptions(); PhotoSaveOptions.newFileNames = ['PhotoViewPicker02.jpg','PhotoViewPicker02.mp4']; let photoPicker = new picker.PhotoViewPicker(); photoPicker.save(PhotoSaveOptions, (err: BusinessError, PhotoSaveResult: Array) => { if (err) { console.error('PhotoViewPicker.save failed with err: ' + JSON.stringify(err)); return; } console.info('PhotoViewPicker.save successfully, PhotoSaveResult uri: ' + JSON.stringify(PhotoSaveResult)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err)); } } ``` ### save save(callback: AsyncCallback<Array<string>>) : void Saves one or more images or videos in a **photoPicker** page. This API uses an asynchronous callback to return the result. The **save()** API saves the file in the file manager, not in the Gallery. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | -------------------------- | | callback | AsyncCallback<Array<string>> | Yes | Callback invoked to return the URIs of the files saved.| **Example** ```ts async function example06() { try { let photoPicker = new picker.PhotoViewPicker(); photoPicker.save((err: BusinessError, PhotoSaveResult: Array) => { if (err) { console.error('PhotoViewPicker.save failed with err: ' + JSON.stringify(err)); return; } console.info('PhotoViewPicker.save successfully, PhotoSaveResult uri: ' + JSON.stringify(PhotoSaveResult)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err)); } } ``` ## DocumentViewPicker Provides the **DocumentViewPicker** object for selecting and saving documents in different formats. Before using the APIs of **DocumentViewPicker**, you need to create a **DocumentViewPicker** instance. **System capability**: SystemCapability.FileManagement.UserFileService **Example** ```ts let documentPicker = new picker.DocumentViewPicker(); ``` ### select select(option?: DocumentSelectOptions) : Promise<Array<string>> Selects one or more documents in a **documentPicker** page. This API uses a promise to return the result. You can pass in **DocumentSelectOptions**. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | -------------------------- | | option | [DocumentSelectOptions](#documentselectoptions) | No | Options for select documents. If this parameter is not specified, the **documentPicker** page is displayed by default.| **Return value** | Type | Description | | ----------------------------- | :---- | | Promise<Array<string>> | Promise used to return the URIs of the documents selected.| **Example** ```ts async function example07() { try { let DocumentSelectOptions = new picker.DocumentSelectOptions(); let documentPicker = new picker.DocumentViewPicker(); documentPicker.select(DocumentSelectOptions).then((DocumentSelectResult: Array) => { console.info('DocumentViewPicker.select successfully, DocumentSelectResult uri: ' + JSON.stringify(DocumentSelectResult)); }).catch((err: BusinessError) => { console.error('DocumentViewPicker.select failed with err: ' + JSON.stringify(err)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err)); } } ``` ### select select(option: DocumentSelectOptions, callback: AsyncCallback<Array<string>>) : void Selects one or more documents in a **documentPicker** page. This API uses an asynchronous callback to return the result. You can pass in **DocumentSelectOptions**. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | -------------------------- | | option | [DocumentSelectOptions](#documentselectoptions) | Yes | Options for selecting documents.| | callback | AsyncCallback<Array<string>> | Yes | Callback invoked to return the URIs of the documents selected.| **Example** ```ts async function example08() { try { let DocumentSelectOptions = new picker.DocumentSelectOptions(); let documentPicker = new picker.DocumentViewPicker(); documentPicker.select(DocumentSelectOptions, (err: BusinessError, DocumentSelectResult: Array) => { if (err) { console.error('DocumentViewPicker.select failed with err: ' + JSON.stringify(err)); return; } console.info('DocumentViewPicker.select successfully, DocumentSelectResult uri: ' + JSON.stringify(DocumentSelectResult)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err)); } } ``` ### select select(callback: AsyncCallback<Array<string>>) : void Selects one or more documents in a **documentPicker** page. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | -------------------------- | | callback | AsyncCallback<Array<string>> | Yes | Callback invoked to return the URIs of the documents selected.| **Example** ```ts async function example09() { try { let documentPicker = new picker.DocumentViewPicker(); documentPicker.select((err: BusinessError, DocumentSelectResult: Array) => { if (err) { console.error('DocumentViewPicker.select failed with err: ' + JSON.stringify(err)); return; } console.info('DocumentViewPicker.select successfully, DocumentSelectResult uri: ' + JSON.stringify(DocumentSelectResult)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err)); } } ``` ### save save(option?: DocumentSaveOptions) : Promise<Array<string>> Saves one or more documents in a **documentPicker** page. This API uses a promise to return the result. You can pass in **DocumentSaveOptions** to specify the file names to save. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | -------------------------- | | option | [DocumentSaveOptions](#documentsaveoptions) | No | Options for saving the documents. If this parameter is not specified, a **documentPicker** page will be displayed for the user to enter the names of the documents to save.| **Return value** | Type | Description | | ----------------------------- | :---- | | Promise<Array<string>> | Promise used to return the URIs of the documents saved.| **Example** ```ts async function example10() { try { let DocumentSaveOptions = new picker.DocumentSaveOptions(); DocumentSaveOptions.newFileNames = ['DocumentViewPicker01.txt']; let documentPicker = new picker.DocumentViewPicker(); documentPicker.save(DocumentSaveOptions).then((DocumentSaveResult: Array) => { console.info('DocumentViewPicker.save successfully, DocumentSaveResult uri: ' + JSON.stringify(DocumentSaveResult)); }).catch((err: BusinessError) => { console.error('DocumentViewPicker.save failed with err: ' + JSON.stringify(err)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err)); } } ``` ### save save(option: DocumentSaveOptions, callback: AsyncCallback<Array<string>>) : void Saves one or more documents in a **documentPicker** page. This API uses an asynchronous callback to return the result. You can pass in **DocumentSaveOptions** to specify the file names to save. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | -------------------------- | | option | [DocumentSaveOptions](#documentsaveoptions) | Yes | Options for saving the documents.| | callback | AsyncCallback<Array<string>> | Yes | Callback invoked to return the URIs of the documents saved.| **Example** ```ts async function example11() { try { let DocumentSaveOptions = new picker.DocumentSaveOptions(); DocumentSaveOptions.newFileNames = ['DocumentViewPicker02.txt']; let documentPicker = new picker.DocumentViewPicker(); documentPicker.save(DocumentSaveOptions, (err: BusinessError, DocumentSaveResult: Array) => { if (err) { console.error('DocumentViewPicker.save failed with err: ' + JSON.stringify(err)); return; } console.info('DocumentViewPicker.save successfully, DocumentSaveResult uri: ' + JSON.stringify(DocumentSaveResult)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err)); } } ``` ### save save(callback: AsyncCallback<Array<string>>) : void Saves one or more documents in a **documentPicker** page. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | -------------------------- | | callback | AsyncCallback<Array<string>> | Yes | Callback invoked to return the URIs of the documents saved.| **Example** ```ts async function example12() { try { let documentPicker = new picker.DocumentViewPicker(); documentPicker.save((err: BusinessError, DocumentSaveResult: Array) => { if (err) { console.error('DocumentViewPicker.save failed with err: ' + JSON.stringify(err)); return; } console.info('DocumentViewPicker.save successfully, DocumentSaveResult uri: ' + JSON.stringify(DocumentSaveResult)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err)); } } ``` ## AudioViewPicker Provides APIs for selecting and saving audio files. Before using the APIs of **AudioViewPicker**, you need to create an **AudioViewPicker** instance. **System capability**: SystemCapability.FileManagement.UserFileService **Example** ```ts let audioPicker = new picker.AudioViewPicker(); ``` ### select select(option?: AudioSelectOptions) : Promise<Array<string>> Selects one or more audio files in an **audioPicker** page (currently, a **documentPicker** page is displayed). This API uses a promise to return the result. You can pass in **AudioSelectOptions**. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | -------------------------- | | option | [AudioSelectOptions](#audioselectoptions) | No | Options for selecting the audio files. If this parameter is not specified, the **audioPicker** page is displayed by default. | **Return value** | Type | Description | | ----------------------------- | :---- | | Promise<Array<string>> | Promise used to return the URIs of the audio files selected.| **Example** ```ts async function example13() { try { let AudioSelectOptions = new picker.AudioSelectOptions(); let audioPicker = new picker.AudioViewPicker(); audioPicker.select(AudioSelectOptions).then((AudioSelectResult: Array) => { console.info('AudioViewPicker.select successfully, AudioSelectResult uri: ' + JSON.stringify(AudioSelectResult)); }).catch((err: BusinessError) => { console.error('AudioViewPicker.select failed with err: ' + JSON.stringify(err)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); } } ``` ### select select(option: AudioSelectOptions, callback: AsyncCallback<Array<string>>) : void Selects one or more audio files in an **audioPicker** page (currently, a **documentPicker** page is displayed). This API uses an asynchronous callback to return the result. You can pass in **AudioSelectOptions**. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | -------------------------- | | option | [AudioSelectOptions](#audioselectoptions) | Yes | Options for selecting audio files.| | callback | AsyncCallback<Array<string>> | Yes | Callback invoked to return the URIs of the audio files selected.| **Example** ```ts async function example14() { try { let AudioSelectOptions = new picker.AudioSelectOptions(); let audioPicker = new picker.AudioViewPicker(); audioPicker.select(AudioSelectOptions, (err: BusinessError, AudioSelectResult: Array) => { if (err) { console.error('AudioViewPicker.select failed with err: ' + JSON.stringify(err)); return; } console.info('AudioViewPicker.select successfully, AudioSelectResult uri: ' + JSON.stringify(AudioSelectResult)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); } } ``` ### select select(callback: AsyncCallback<Array<string>>) : void Selects one or more audio files in an **audioPicker** page (currently, a **documentPicker** page is displayed). This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | -------------------------- | | callback | AsyncCallback<Array<string>> | Yes | Callback invoked to return the URIs of the audio files selected.| **Example** ```ts async function example15() { try { let audioPicker = new picker.AudioViewPicker(); audioPicker.select((err: BusinessError, AudioSelectResult: Array) => { if (err) { console.error('AudioViewPicker.select failed with err: ' + JSON.stringify(err)); return; } console.info('AudioViewPicker.select successfully, AudioSelectResult uri: ' + JSON.stringify(AudioSelectResult)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); } } ``` ### save save(option?: AudioSaveOptions) : Promise<Array<string>> Saves one or more audio files in an **audioPicker** page (currently, a **documentPicker** page is displayed). This API uses a promise to return the result. You can pass in **AudioSaveOptions** to specify the names of the audio files to save. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | -------------------------- | | option | [AudioSaveOptions](#audiosaveoptions) | No | Options for saving audio files. If this parameter is not specified, an **audioPicker** page will be displayed for the user to enter the names of the files to save.| **Return value** | Type | Description | | ----------------------------- | ---- | | Promise<Array<string>> | Promise used to return the URIs of the audio files saved.| **Example** ```ts async function example16() { try { let AudioSaveOptions = new picker.AudioSaveOptions(); AudioSaveOptions.newFileNames = ['AudioViewPicker01.mp3']; let audioPicker = new picker.AudioViewPicker(); audioPicker.save(AudioSaveOptions).then((AudioSaveResult: Array) => { console.info('AudioViewPicker.save successfully, AudioSaveResult uri: ' + JSON.stringify(AudioSaveResult)) }).catch((err: BusinessError) => { console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); } } ``` ### save save(option: AudioSaveOptions, callback: AsyncCallback<Array<string>>) : void Saves one or more audio files in an **audioPicker** page (currently, a **documentPicker** page is displayed). This API uses an asynchronous callback to return the result. You can pass in **AudioSaveOptions** to specify the names of the audio files to save. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | -------------------------- | | option | [AudioSaveOptions](#audiosaveoptions) | Yes | Options for saving audio files.| | callback | AsyncCallback<Array<string>> | Yes | Callback invoked to return the URIs of the audio files saved.| **Example** ```ts async function example17() { try { let AudioSaveOptions = new picker.AudioSaveOptions(); AudioSaveOptions.newFileNames = ['AudioViewPicker02.mp3']; let audioPicker = new picker.AudioViewPicker(); audioPicker.save(AudioSaveOptions, (err: BusinessError, AudioSaveResult: Array) => { if (err) { console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err)); return; } console.info('AudioViewPicker.save successfully, AudioSaveResult uri: ' + JSON.stringify(AudioSaveResult)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); } } ``` ### save save(callback: AsyncCallback<Array<string>>) : void Saves one or more audio files in an **audioPicker** page (currently, a **documentPicker** page is displayed). This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | -------------------------- | | callback | AsyncCallback<Array<string>> | Yes | Callback invoked to return the URIs of the audio files saved.| **Example** ```ts async function example18() { try { let audioPicker = new picker.AudioViewPicker(); audioPicker.save((err: BusinessError, AudioSaveResult: Array) => { if (err) { console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err)); return; } console.info('AudioViewPicker.save successfully, AudioSaveResult uri: ' + JSON.stringify(AudioSaveResult)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); } } ``` ## PhotoViewMIMETypes Enumerates the media file types that can be selected. **System capability**: SystemCapability.FileManagement.UserFileService | Name | Value| Description| | ----- | ---- | ---- | | IMAGE_TYPE | 'image/*' | Image.| | VIDEO_TYPE | 'video/*' | Video.| | IMAGE_VIDEO_TYPE | '\*/*' | Image and video.| ## PhotoSelectOptions Defines the options for selecting images or videos. **System capability**: SystemCapability.FileManagement.UserFileService | Name | Type | Mandatory| Description | | ----------------------- | ------------------- | ---- | -------------------------------- | | MIMEType | [PhotoViewMIMETypes](#photoviewmimetypes) | No | Available media file types. **IMAGE_VIDEO_TYPE** is used by default.| | maxSelectNumber | number | No | Maximum number of media files to select. The default value is **50**, and the maximum value is **500**. | ## PhotoSelectResult Defines information about the images or videos selected. **System capability**: SystemCapability.FileManagement.UserFileService | Name | Type | Readable| Writable| Description | | ----------------------- | ------------------- | ---- | ---- | ------------------------------ | | photoUris | Array<string> | Yes | Yes | URIs of the media files selected.| | isOriginalPhoto | boolean | Yes | Yes | Whether the selected media file is the original image.| ## PhotoSaveOptions Defines the options for saving images or videos. **System capability**: SystemCapability.FileManagement.UserFileService | Name | Type | Mandatory| Description | | ----------------------- | ------------------- | ---- | ---------------------------- | | newFileNames | Array<string> | No | Names of the files to save. If this parameter is not specified, the user needs to enter the file names.| ## DocumentSelectOptions Defines the options for selecting documents. **System capability**: SystemCapability.FileManagement.UserFileService | Name | Type | Mandatory| Description | | ----------------------- | ------------------- | ---- | -------------------------------- | | maxSelectNumber10+ | number | No | Maximum number of files or directories that can be selected.
Value range: 1–500
Maximum value: **500** | | defaultFilePathUri10+ | string | No | Path of the file or directory to select.| | fileSuffixFilters10+ | Array<string> | No | File name extensions of the documents to select.| ## DocumentSaveOptions Defines the options for saving documents. **System capability**: SystemCapability.FileManagement.UserFileService | Name | Type | Mandatory| Description | | ----------------------- | ------------------- | ---- | ---------------------------- | | newFileNames | Array<string> | No | Names of the documents to save. If this parameter is not specified, the user needs to enter the document names. | | defaultFilePathUri10+ | string | No | Path of the file or directory to save.| | fileSuffixChoices10+ | Array<string> | No | File name extensions of the documents to save.| ## AudioSelectOptions Defines the options for selecting audio files. Currently, this parameter cannot be configured. **System capability**: SystemCapability.FileManagement.UserFileService ## AudioSaveOptions Defines the options for saving audio files. **System capability**: SystemCapability.FileManagement.UserFileService | Name | Type | Mandatory| Description | | ----------------------- | ------------------- | ---- | ---------------------------- | | newFileNames | Array<string> | No | Name of the audio files to save. If this parameter is not specified, the user needs to enter the file names.|