选择文件对话框

本文介绍如何在项目中使用C++实现自定义文件过滤器,以选择特定类型的图像文件,包括JPEG、PNG和GIF格式,并通过文件对话框进行交互。

经常在我们的项目中可能会用到选择文件对话框.
当然更会用到选择指定格式的文件

#include <maknfilefilter.h>

//定义一个属于自己的类,也就是文件过滤器
//代码演示了选择图像文件的对话框

class CMelodyFilter : public MAknFileFilter
{
    TBool Accept(const TDesC &aDriveAndPath, const TEntry &aEntry) const
    {
    if(aEntry.IsDir() || aEntry.iName.Right(4) == _L(".jpg") || aEntry.iName.Right(4) == _L(".png")
            || aEntry.iName.Right(4) == _L(".gif"))
        return ETrue;
    else
        return EFalse;
    }
};


//选择文件对话框
TBool CSaveImageAppUi::SelectFileL(TFileName& aFileName)
    {
    TFileName fileName;
    
    CAknMemorySelectionDialog* memSelectionDialog =
        CAknMemorySelectionDialog::NewL(ECFDDialogTypeSelect, EFalse);
    CAknMemorySelectionDialog::TMemory mem(CAknMemorySelectionDialog::EPhoneMemory);

    TInt ret = memSelectionDialog->ExecuteL(mem);
    CleanupStack::PopAndDestroy(memSelectionDialog);
    if (!ret)
             
        return EFalse;
        }

    CAknFileSelectionDialog* fileSelectionDialog = NULL;
    if (mem == CAknMemorySelectionDialog::EMemoryCard)
        {
        fileSelectionDialog = CAknFileSelectionDialog::NewL(
                ECFDDialogTypeSelect, R_FILE_SELECTION_DIALOG_E);
        }
    else
        {
        fileSelectionDialog= CAknFileSelectionDialog::NewL(
                ECFDDialogTypeSelect, R_FILE_SELECTION_DIALOG_C);
        }

    CMelodyFilter* filter = new(ELeave) CMelodyFilter;

    fileSelectionDialog->SetDefaultFolderL(_L("Image\\"));
    fileSelectionDialog->AddFilterL(filter);
    TBool err = fileSelectionDialog->ExecuteL(fileName);
    aFileName.Copy(fileName);
    delete fileSelectionDialog;
   
    return err;
    }

//资源文件
#include <commondialogs.hrh>  //FILESELECTIONDIALOG
#include <commondialogs.rh>

RESOURCE FILESELECTIONDIALOG r_file_selection_dialog_c
{
 title = <0x9009><0x62e9><0x6587><0x4EF6>;
 root_path = "C:\\";
 }

RESOURCE FILESELECTIONDIALOG r_file_selection_dialog_e
{
 title = <0x9009><0x62e9><0x6587><0x4EF6>;
 root_path = "E:\\";
}

 

Archived:How to fetch media files using Symbian C++

http://www.developer.nokia.com/Community/Wiki/How_to_fetch_media_files

在WPF应用程序中,选择文件对话框通常通过 `Microsoft.Win32.OpenFileDialog` 类实现。它允许用户浏览计算机上的文件系统并选择单个或多个文件。下面是一个简单的例子展示如何在WPF程序里使用打开文件对话框。 首先,在项目中你需要引入命名空间 `using Microsoft.Win32;`,然后你可以创建一个 OpenFileDialog 实例并配置其属性如标题、初始目录、过滤器等,最后调用 ShowDialog 方法弹出对话框让用户交互。 例如: ```csharp // 构建一个新的开放文件对话框实例. OpenFileDialog openFileDialog = new OpenFileDialog(); // 设定一些基本特性. openFileDialog.Title = "请选择一个文件"; // 设置标题栏文字 openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); // 初始目录设为我的文档 openFileDialog.Filter = "文本文件 (*.txt)|*.txt|所有文件 (*.*)|*.*"; // 过滤指定类型的文件 // 调用该方法启动对话框并且得到返回的结果(true/false). bool? result = openFileDialog.ShowDialog(); if (result == true) { string selectedFileName = openFileDialog.FileName; // 取得所选中的文件全路径名称 MessageBox.Show("你选择了:" + selectedFileName); } ``` 这里需要注意几个关键点: - **Title:** 定义出现在对话框顶部的文字说明。 - **InitialDirectory:** 指明当第一次展现出来的时候,默认指向哪个磁盘位置开始找寻资料夹跟档案的位置。 - **Filter:** 允许我们控制哪些种类的文件可以被看见以及默认情况下会被高亮出来的选项是什么样的模式匹配格式(比如 *.jpg 表示图像)。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值