ContentDisposition.FileName Property


Gets or sets the suggested file name for an e-mail attachment.

Namespace:   System.Net.Mime
Assembly:  System (in System.dll)

public string FileName { get; set; }

Property Value

Type: System.String

A String that contains the file name.

The FileName property allows the sender to suggest the name to be used to store an e-mail attachment on the recipient's computer. This name is a suggestion only; the receiving system can ignore it. The name must not include path information; any such information is ignored by the receiving computer.

To remove file name information, you can set this property to null or the empty string ("").

The Content-Disposition header is described in RFC 2183 available at

The following code example demonstrates how to set the value of this property.

public static void CreateMessageAttachment1(string server, string textMessage)
	// Create a message and set up the recipients.
	MailMessage message = new MailMessage(
	   "A text message for you.",
	   "Message: ");

	// Attach the message string to this e-mail message.
	Attachment data = new Attachment(textMessage, MediaTypeNames.Text.Plain);
	ContentDisposition disposition = data.ContentDisposition;
	// Suggest a file name for the attachment.
	disposition.FileName = "message" + DateTime.Now.ToString();
	//Send the message.
	SmtpClient client = new SmtpClient(server);
	client.Credentials = CredentialCache.DefaultNetworkCredentials;

   try {
    catch (Exception ex) {
      Console.WriteLine("Exception caught in CreateMessageAttachment1(): {0}", 
                  ex.ToString() );
	// Display the values in the ContentDisposition for the attachment.
	Console.WriteLine("Content disposition");
	Console.WriteLine("File {0}", disposition.FileName);
	Console.WriteLine("Size {0}", disposition.Size);
	Console.WriteLine("Creation {0}", disposition.CreationDate);
	Console.WriteLine("Modification {0}", disposition.ModificationDate);
	Console.WriteLine("Read {0}", disposition.ReadDate);
	Console.WriteLine("Inline {0}", disposition.Inline);
	Console.WriteLine("Parameters: {0}", disposition.Parameters.Count);
	foreach (DictionaryEntry d in disposition.Parameters)
		Console.WriteLine("{0} = {1}", d.Key, d.Value);

.NET Framework
Available since 2.0
Return to top