LAUREL BRIDGE

LaurelBridge.DCFExamples.UnicodeWideFilename Namespace

DICOM Connectivity Framework V3.4
The UnicodeWideFilename example provides a code example for creating files with wide character filenames.
Classes

  ClassDescription
Public classProgram
Simple example to demonstrate reading and writing file paths with wide characters.
Remarks

Supported OS Platforms:

  • Windows - .Net Framework 4.7.2 64-bit and 32-bit
  • Windows - .Net Core 2.1 64-bit and 32-bit

Examples

UnicodeWideFilename Sample Code
public class Program
{
    private static readonly string _outputFilePath = "UnicodeWideFilename.txt";

    /// <summary>
    /// Main entry point for UnicodeWideFilename.
    /// </summary>
    public static void Main()
    {
        try
        {
            byte[] origBytes = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 };
            string parentDir = Path.GetTempPath();
            string fileName = "ヤマダ_タロウ_山田_太郎_やまだ^たろう.dcm";
            string filePath = Path.Combine(parentDir, fileName);

            using (FileStream fs = FSUtil.WriteFileWithLongPath(filePath))
            {
                fs.Write(origBytes, 0, 10);
            }

            // Read in the bytes written to disc
            byte[] result = new byte[10];
            using (FileStream fs = FSUtil.ReadFileWithLongPath(filePath))
            {
                fs.Read(result, 0, 10);
            }

            Debug.Assert(origBytes.Length == result.Length);
            StringBuilder sb = new StringBuilder();
            sb.AppendFormat("FilePath: {1}{0}", Environment.NewLine, filePath);
            sb.AppendFormat("original bytes written: {0}", HexDump.ToHexString(origBytes));
            sb.AppendFormat("Bytes read from file:   {0}", HexDump.ToHexString(result));

            WriteOutputToFile(_outputFilePath, sb.ToString());
            Pager.View(_outputFilePath);

            FSUtil.DeleteFile(filePath);
        }
        catch (Exception e)
        {
            Console.WriteLine("Exception caught during execution: {0}", e);
            Environment.ExitCode = 1;
        }

        if (Debugger.IsAttached)
        {
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey();
        }
    }

    /// <summary>
    /// Write the given output text to disk in UTF8.
    /// </summary>
    /// <param name="outputFile">The output file path</param>
    /// <param name="outputText">The text to write</param>
    private static void WriteOutputToFile(string outputFile, string outputText)
    {
        using (StreamWriter writer = new StreamWriter(outputFile, false, Encoding.UTF8))
        {
            writer.Write(outputText);
        }
    }
}