Vous êtes sur la page 1sur 10

Files:

15.1 What is the best way to rename a file on the webserver in code?

Use namespace System.IO

VB.NET

File.Move("C:\Dir1\SomeFile.txt", "C:\Dir1\RenamedFileName.txt")

C#

File.Move(@"C:\Dir1\SomeFile.txt", @"C:\Dir1\RenamedFileName.txt")

Refer

• Rename Function

• FileInfo.MoveTo Method

Note: In a Web application, the code is running in the context of the machine\ASPNET account, which has
limited privileges. If the error you are getting pertains to permissions, you might need to grant to the
machine\ASPNET account the rights to create and delete files in the directory where you're working. Note
that this could be a security issue.

15.2 How to create a folder in ASP.NET?

Use System.IO namespace

VB.NET

Dim path As String = ""


try
' Determine whether the directory exists.
If Directory.Exists(path) Then
Response.Write("That path exists already.")
Return
End If
' Try to create the directory.
Dim di As DirectoryInfo = Directory.CreateDirectory(path)
Response.Write(("Directory create successfully at " + Directory.GetCreationTime(path)))
catch ex as Exception
Response.Write (ex.Message )
end try

C#
string path = @"c:\MyDir";
try
{
// Determine whether the directory exists.
if (Directory.Exists(path))
{
Response.Write ("That path exists already.");
return;
}
// Try to create the directory.
DirectoryInfo di = Directory.CreateDirectory(path);
Response.Write("Directory create successfully at " + Directory.GetCreationTime(path));
}
catch(Exception ex)
{
Response.Write (ex.Message );
}

15.3 How to show the ASP.NET code to the users?

Use namespace

• System.IO

• System.Text

VB.NET

Protected Function GetCode(filename As String) As String


Dim sr As New StreamReader(filename)
Dim sb As New StringBuilder()
sb.Append("<code><pre>")
sb.Append(sr.ReadToEnd())
sb.Append("</pre></code>")
sr.Close()
Return sb.ToString()
sb = Nothing
sr = Nothing
End Function 'GetCode

Private Sub Button1_Click(sender As Object, e As System.EventArgs)


Response.Write(GetCode((Server.MapPath("WebForm1.aspx") + ".vb")))
End Sub 'Button1_Click

C#

protected string GetCode(string filename)


{
StreamReader sr =new StreamReader(filename );
StringBuilder sb =new StringBuilder();
sb.Append("<code><pre>");
sb.Append(sr.ReadToEnd());
sb.Append("</pre></code>");
sr.Close();
return sb.ToString();
sb = null;
sr = null;
}
private void Button1_Click(object sender, System.EventArgs e)
{
Response.Write (GetCode(Server.MapPath ("WebForm1.aspx") + ".cs"));
}

15.4 How to read a html file in ASP.NET?

Use namespace System.IO

VB.NET

Dim file As String = Server.MapPath("temp.html")


Dim sr As StreamReader
Dim fi As New FileInfo(file)
Dim input As String = "<pre>"
If File.Exists(file) Then
sr = File.OpenText(file)
input += Server.HtmlEncode(sr.ReadToEnd())
sr.Close()
End If
input += "</pre>"
Me.Label1.Text = input

C#

string file = Server.MapPath ("temp.html");


StreamReader sr;
FileInfo fi = new FileInfo(file);
string input = "<pre>";
if(File.Exists(file))
{
sr = File.OpenText(file);
input += Server.HtmlEncode(sr.ReadToEnd());
sr.Close();
}
input += "</pre>";
this.Label1.Text = input;

15.5 How can I to get the path to the system area that holds temporary
files?

Use System.IO namespace

VB.NET

Dim filePath As String = Path.GetTempPath()


Dim fileName As String = Path.GetTempFileName()
Response.Write((filePath + "
"))
Response.Write(fileName)

C#

string filePath =Path.GetTempPath ();


string fileName = Path.GetTempFileName();
Response.Write (filePath + "
" );
Response.Write (fileName );

15.6 How to save a file in the client machine?

The browser will not allow you to save a file directly to a client machine. You could however do a

Response.Redirect("http://server/filename"); which would send the file back to the browser, at which point

the user would be prompted to save / open the file.

15.7 How to get the physical path of a file?

Use Request.Path

15.8 How to get the current filename?

VB.NET

Response.Write (Path.GetFileName(Request.PhysicalPath))

C#

Response.Write (Path.GetFileName(Request.PhysicalPath));

15.9 How to Upload files in ASP.NET?

Take a look at following articles

• VB.NET code

• C# Code

15.10 How to delete a file from the server?

VB.NET
System.IO.File.Delete(Server.MapPath("wnew.txt"))

C#

System.IO.File.Delete(Server.MapPath("wnew.txt"))

Make sure that you have permissions to delete a file.

15.11 How to find the date and time the specified file or directory was
last written to?

Use namespace System.IO

VB.NET

dim path as string = Server.MapPath("page1.aspx")


Response.Write ( File.GetLastWriteTime(path))

C#

string path =Server.MapPath("page1.aspx");


Response.Write ( File.GetLastWriteTime(path));

15.12 How to get the File information using ASP.NET?

Use the namepsace System.IO

VB.NET

Dim fPath As String = Server.MapPath("orders.xml")


Dim fInfo As New FileInfo(fPath)
Dim strFileInfo As String
If fInfo.Exists Then
strFileInfo = "Name: " + fInfo.Name + "<br />"
strFileInfo += "Location: " + fInfo.FullName + "<br />"
strFileInfo += "Created on: " + fInfo.CreationTime + "<br />"
strFileInfo += "Extension: " + fInfo.Extension
Else
strFileInfo = "The file <b>" + fPath + "</b> was not found."
End If
Response.Write(strFileInfo)

C#

string fPath = Server.MapPath("orders.xml");


FileInfo fInfo = new FileInfo(fPath);
string strFileInfo ;
if(fInfo.Exists)
{
strFileInfo = "Name: " + fInfo.Name + "<br />";
strFileInfo += "Location: " + fInfo.FullName + "<br />";
strFileInfo += "Created on: " + fInfo.CreationTime + "<br />";
strFileInfo += "Extension: " + fInfo.Extension;
}
else
{
strFileInfo = "The file <b>" + fPath + "</b> was not found.";
}
Response.Write (strFileInfo);

15.13 How to create a .csv file that grabs the data from the database?

<asp:Button id="Button1" runat="server" Text="Button"></asp:Button>

VB.NET

Dim cn As SqlConnection
Dim cmd As SqlCommand
Dim filename As String
Dim dr As SqlDataReader
Dim i As Integer
Dim sb As System.Text.StringBuilder

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


Button1.Click
cn=NewSqlConnection("server=localhost;uid=sa;pwd=;database=northwind")
filename = "products.csv"
cmd = New SqlCommand("select * from products ", cn)
cmd.Connection.Open()
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
sb = New System.Text.StringBuilder

'For field Names


For i = 0 To dr.FieldCount - 1
If i < (dr.FieldCount - 1) Then
sb.Append(Chr(34) & dr.GetName(i) & _
Chr(34) & ",")
Else
sb.Append(Chr(34) & dr.GetName(i) & _
Chr(34) & vbCrLf)
End If
Next

'For field Values


While dr.Read()
For i = 0 To dr.FieldCount - 1
If i < (dr.FieldCount - 1) Then
sb.Append(Chr(34) & _
dr.GetValue(i).ToString & Chr(34) & ",")
Else
sb.Append(Chr(34) & _
dr.GetValue(i).ToString & Chr(34) & vbCrLf)
End If
Next
End While
dr.Close()
cn.Close()
Response.ContentType = "Application/x-msexcel"
Response.AddHeader _
("content-disposition", "attachment; filename=""" & _
filename & """")
'Write the file directly to the HTTP output stream.
Response.Write(sb.ToString)
Response.End()
End Sub

C#

SqlConnection cn ;
SqlCommand cmd ;
string filename ;
SqlDataReader dr ;
System.Text.StringBuilder sb ;

private void Button1_Click(object sender, System.EventArgs e)


{
cn=newSqlConnection("server=localhost;uid=sa;pwd=;database=northwind");
filename = "products.csv";
cmd = new SqlCommand("select * from products ", cn);
cmd.Connection.Open();
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
sb = new System.Text.StringBuilder();

//For field Names


for(int i = 0 ;i< = dr.FieldCount - 1;i++)
{
if( i < (dr.FieldCount - 1) )
{
sb.Append("\t" + dr.GetName(i) + "\t" + ",");
}
else
{
sb.Append("\t" + dr.GetName(i) + "\t" + "\n");
}
}

//For field Values


while( dr.Read())
{
for(int i = 0 ;i<= dr.FieldCount - 1;i++)
{
if( i < (dr.FieldCount - 1) )
{
sb.Append("\t" + dr.GetValue(i) + "\t" + ",");
}
else
{
sb.Append("\t" + dr.GetValue(i) + "\t" + "\n");
}
}
}
dr.Close();
cn.Close();
Response.ContentType = "Application/x-msexcel";
Response.AddHeader ("content-disposition", "attachment; filename=" + filename ) ;
//Write the file directly to the HTTP output stream.
Response.Write(sb.ToString());
Response.End();
}

15.14 How to read text file in ASP.NET?

Use namespace System.IO

VB.NET

Dim sr As StreamReader
sr = File.OpenText(Server.MapPath("1.txt"))
Dim strContents As String = sr.ReadToEnd()
'To display normal raw contents
Response.Write(strContents)

'To handle Carriage returns


Response.Write(strContents.Replace(vbCrLf, "<br>"))

sr.Close()

C#

StreamReader sr = File.OpenText(Server.MapPath("1.txt"));
string strContents = sr.ReadToEnd();
//To display normal raw contents
Response.Write(strContents);

//To handle Carriage returns


Response.Write(strContents.Replace("\n" , "<br>"));

sr.Close();

15.15 How to read specific characters from a text file?

Use namespace System.IO

VB.NET

Dim fs As New System.IO.FileStream(Server.MapPath("1.txt"), IO.FileMode.Open)


Dim buffer(5) As Byte ' 5=> number of characters to be read
fs.Read(buffer, 0, 5)
fs.Close()
Dim filechars() As Char = System.Text.Encoding.ASCII.GetChars(buffer)
Dim filestring As String = New String(filechars)
Response.Write(filestring)

C#

FileStream fs =new FileStream(Server.MapPath("1.txt"), FileMode.Open);


Byte[] buffer= new byte [5] ; //5 => Number of characters to be read
fs.Read(buffer, 0, 5);
fs.Close();
Char[] filechars = System.Text.Encoding.ASCII.GetChars(buffer);
string filestring = new String(filechars);
Response.Write(filestring);

15.16 How to check files exist in a particular directory?

Try to use "System.IO.File.Exists("path")". path is the physical file path and it will return you a boolean value.

15.17 What is a MemoryStream and how to use MemoryStream in


ASP.NET?

The MemoryStream class creates streams that use memory as storage instead of a disk or a network

connection. MemoryStream encapsulates data stored as an unsigned byte array that is initialized upon

creation of a MemoryStream object, or the array can be created as empty. The encapsulated data is directly

accessible in memory. Memory streams can reduce the need for temporary buffers and files in an application.

For more details refer

• MemoryStream Class

• How can I display an image from a Sql Server database?

15.18 How to detect if the string indicating a file-system resource is a


file or directory?

VB.NET

Dim path As String = Server.MapPath("webform1.aspx")


' Put user code to initialize the page here
If(File.GetAttributes(path) And FileAttributes.Directory) = FileAttributes.Directory Then
Response.Write("Its a directory")
Else
Response.Write("Its a file")
End If

C#

string path =Server.MapPath ("webform1.aspx");


if ((File.GetAttributes(path) & FileAttributes.Directory) ==FileAttributes.Directory)
{
Response.Write ("Its a directory");
}
else
{
Response.Write ("Its a file");
}

Vous aimerez peut-être aussi