Append text from one file to an other

October 31, 2009 at 08:28
filed under Dynamics AX
Tagged , ,

This method will append all text from the original file to the destination file.
While this is a very easy task, the method shows many of the things you come across when you are working with files in AX, like:

- Using the #File macro
- Asserting FileIOPermission to be able to access files
- Asserting InteropPermission to be able to use .NET Interop
- Using a set to assert multiple permissions at once
- Using .NET Clr Interop in AX (better than winapi and winapiserver)
- Optional cleaning up after you’re done using reverAssert()

void AppendFileToFile(FileName original, FileName distination)
{
    #File
    FileIOPermission    FileIOPermissionA   = new FileIOPermission(distination, #io_append);
    FileIOPermission    FileIOPermissionR   = new FileIOPermission(original, #io_read);
    InteropPermission   InteropPermission   = new InteropPermission(InteropKind::ClrInterop);
    Set                 permissionset       = new set(types::Class);
    ;

    // create permissionset
    permissionset.add(FileIOPermissionA);
    permissionset.add(FileIOPermissionR);
    permissionset.add(InteropPermission);
    // assert permissions
    CodeAccessPermission::assertMultiple(permissionset);
    // append text from source file to destination file
    System.IO.File::AppendAllText(distination, System.IO.File::ReadAllText(original));

    // limit the scope of the assert
    CodeAccessPermission::revertAssert();
}

Because all permissions are taken care of, this code will run client side as well as server side.

1 comment

RSS / trackback

  1. Steffen

    Hi
    Just found your page – really nice. You’ve got many really nice posts especially this one :-D

    /Happy ax-hacking

respond