如何在使用IFileOperation创建的文件中添加文本?

时间:2013-10-16 23:27:27

标签: c++ windows winapi

我查看了MSDN样本的IFileOperation,它们展示了如何创建文件,但我不想创建一个空白文件,我想在其中添加一些文本。以下是我从样本中得到的内容:

IFileOperation *pfo;
HRESULT hr = CreateAndInitializeFileOperation(IID_PPV_ARGS(&pfo));
if (SUCCEEDED(hr))
{
    hr = pfo->NewItem(psiFolder, FILE_ATTRIBUTE_NORMAL, c_szFileName, NULL, NULL);
    if (SUCCEEDED(hr))
    {
        hr = pfo->PerformOperations();
    }
    pfo->Release();
}

在pfo-> NewItem调用中,第四个参数用于模板,但我不想定义模板。我想创建一个包含内容的.Url文件:

[InternetShortcut]
URL=www.google.com

我甚至无法控制文件的格式,更不用说内容了。请帮忙!

1 个答案:

答案 0 :(得分:2)

IFileOperation::NewItem可让您访问“ShellNew”菜单的功能(如果右键单击文件夹,则会获得的菜单,并从上下文菜单中选择 New )。它旨在让您创建文件夹或空文件,或从预先存在的模板创建新文件。它不允许您创建包含任意数据的文件。

创建新的空文件后,您可以使用CreateFile()将其打开,然后使用WriteFile()将数据写入其中。但请注意CreateFile()也可以为您创建文件 - 实际上不需要使用IFileOperation来创建一个空文件(除非您需要支持UAC才能在受保护的位置创建文件) ,但是在那种情况下,你之后就不会写信了。)