Csharp/C Sharp/File Stream/File
Содержание
- 1 Delete a file
- 2 File class to check whether a file exists, open and read
- 3 Get File Access Control
- 4 Get file Creation Time
- 5 illustrates the FileAttributes enumeration
- 6 illustrates the FileInfo class
- 7 illustrates the FileSystemWatcher class
- 8 Uses methods in the File class to check the status of a file
- 9 Uses methods in the File class to check whether a file exists
Delete a file
<source lang="csharp"> using System; using System.IO; class MainClass {
static void Main() { string tempFile = Path.GetTempFileName(); Console.WriteLine("Using " + tempFile); using (FileStream fs = new FileStream(tempFile, FileMode.Open)) { // (Write some data.) } // Now delete the file. File.Delete(tempFile); }
}
</source>
File class to check whether a file exists, open and read
<source lang="csharp"> /* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794
- /
// cp.cs -- Uses methods in the File class to check whether a file exists. // If it exists, it then opens and reads the file to the console. // // Compile this program with the following command line // C:>csc cp.cs using System; using System.IO; namespace nsStreams {
public class cp { static public void Main (string [] args) { if (args.Length < 2) { Console.WriteLine ("usage: cp <copy from> <copy to>"); return; } if (!File.Exists (args[0])) { Console.WriteLine (args[0] + " does not exist"); return; } bool bOverwrite = false; if (File.Exists (args[1])) { Console.Write (args[1] + " already exists. Overwrite [Y/N]? "); string reply = Console.ReadLine (); char ch = (char) (reply[0] & (char) 0xdf); if (ch != "Y") return; bOverwrite = true; } File.Copy (args[0], args[1], bOverwrite); } }
}
</source>
Get File Access Control
<source lang="csharp">
using System; using System.IO; using System.Security.AccessControl; class MainClass {
static void Main(string[] args) { FileStream stream; string fileName; fileName = Path.GetRandomFileName(); using (stream = new FileStream(fileName, FileMode.Create)) { // Do something. } SetRule(fileName, "Everyone", FileSystemRights.Read, AccessControlType.Deny); try { stream = new FileStream(fileName, FileMode.Create); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } finally { stream.Close(); stream.Dispose(); } } static void AddRule(string filePath, string account, FileSystemRights rights, AccessControlType controlType) { FileSecurity fSecurity = File.GetAccessControl(filePath); fSecurity.AddAccessRule(new FileSystemAccessRule(account, rights, controlType)); File.SetAccessControl(filePath, fSecurity); } static void SetRule(string filePath, string account, FileSystemRights rights, AccessControlType controlType) { FileSecurity fSecurity = File.GetAccessControl(filePath); fSecurity.ResetAccessRule(new FileSystemAccessRule(account, rights, controlType)); File.SetAccessControl(filePath, fSecurity); }
}
</source>
Get file Creation Time
<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110
- /
/* Example15_3.cs illustrates the File class
- /
using System; using System.Windows.Forms; using System.IO; public class Example15_3 {
[STAThread] public static void Main() { // create and show an open file dialog OpenFileDialog dlgOpen = new OpenFileDialog(); if (dlgOpen.ShowDialog() == DialogResult.OK) { // use the File class to return info about the file string s = dlgOpen.FileName; Console.WriteLine("Filename " + s); Console.WriteLine(" Created at " + File.GetCreationTime(s)); Console.WriteLine(" Accessed at " + File.GetLastAccessTime(s)); } }
}
</source>
illustrates the FileAttributes enumeration
<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110
- /
/* Example15_4.cs illustrates the FileAttributes enumeration
- /
using System; using System.Windows.Forms; using System.IO; public class Example15_4 {
// the DecipherAttributes method turns file attributes // into something easier for people to read public static void DecipherAttributes(FileAttributes f) { if ((f & FileAttributes.Archive) == FileAttributes.Archive) Console.WriteLine("Archive"); if ((f & FileAttributes.rupressed) == FileAttributes.rupressed) Console.WriteLine("Compressed"); if ((f & FileAttributes.Device) == FileAttributes.Device) Console.WriteLine("Device"); if ((f & FileAttributes.Directory) == FileAttributes.Directory) Console.WriteLine("Directory"); if ((f & FileAttributes.Encrypted) == FileAttributes.Encrypted) Console.WriteLine("Encrypted"); if ((f & FileAttributes.Hidden) == FileAttributes.Hidden) Console.WriteLine("Hidden"); if ((f & FileAttributes.NotContentIndexed) == FileAttributes.NotContentIndexed) Console.WriteLine("NotContentIndexed"); if ((f & FileAttributes.Offline) == FileAttributes.Offline) Console.WriteLine("Offline"); if ((f & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) Console.WriteLine("ReadOnly"); if ((f & FileAttributes.ReparsePoint) == FileAttributes.ReparsePoint) Console.WriteLine("ReparsePoint"); if ((f & FileAttributes.SparseFile) == FileAttributes.SparseFile) Console.WriteLine("SparseFile"); if ((f & FileAttributes.System) == FileAttributes.System) Console.WriteLine("System"); if ((f & FileAttributes.Temporary) == FileAttributes.Temporary) Console.WriteLine("Temporary"); } [STAThread] public static void Main() { // create and show an open file dialog OpenFileDialog dlgOpen = new OpenFileDialog(); if (dlgOpen.ShowDialog() == DialogResult.OK) { // retrieve and show the file attributes FileAttributes f = File.GetAttributes(dlgOpen.FileName); Console.WriteLine("Filename " + dlgOpen.FileName + " has attributes:"); DecipherAttributes(f); } }
}
</source>
illustrates the FileInfo class
<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110
- /
/* Example15_5.cs illustrates the FileInfo class
- /
using System; using System.Windows.Forms; using System.IO; public class Example15_5 {
[STAThread] public static void Main() { // create and show an open file dialog OpenFileDialog dlgOpen = new OpenFileDialog(); if (dlgOpen.ShowDialog() == DialogResult.OK) { // use the File class to return info about the file FileInfo fi = new FileInfo(dlgOpen.FileName); Console.WriteLine("Filename " + fi.FullName ); Console.WriteLine(" Created at " + fi.CreationTime ); Console.WriteLine(" Accessed at " + fi.LastAccessTime ); } }
}
</source>
illustrates the FileSystemWatcher class
<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110
- /
/* Example15_9.cs illustrates the FileSystemWatcher class
- /
using System; using System.IO; public class Example15_9 {
// event handler for file change public static void OnChanged(object source, FileSystemEventArgs e) { // dump info to the screen Console.WriteLine("Change to " + e.FullPath + ": " + e.ChangeType); } public static void Main() { // create a watcher for the c: drive FileSystemWatcher fsw = new FileSystemWatcher("c:\\"); fsw.IncludeSubdirectories = true; // hook up the event handler fsw.Changed += new FileSystemEventHandler(OnChanged); // turn on file watching fsw.EnableRaisingEvents = true; // And wait for the user to quit Console.WriteLine("Press any key to exit"); int i = Console.Read(); }
}
</source>
Uses methods in the File class to check the status of a file
<source lang="csharp"> /* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794
- /
// Status.cs -- Uses methods in the File class to check the status of a file. // // Compile this program with the following command line // C:>csc Status.cs using System; using System.IO; namespace nsStreams {
public class Status { static public void Main (string [] args) { if (args.Length == 0) { Console.WriteLine ("Please enter a file name"); return; } if (!File.Exists (args[0])) { Console.WriteLine (args[0] + " does not exist"); return; } DateTime created = File.GetCreationTime (args[0]); DateTime accessed = File.GetLastAccessTime (args[0]); DateTime written = File.GetLastWriteTime (args[0]); Console.WriteLine ("File " + args[0] + ":"); string str = created.ToString(); int index = str.IndexOf (" "); Console.WriteLine ("\tCreated on " + str.Substring (0, index) + " at " + str.Substring (index + 1)); str = accessed.ToString(); index = str.IndexOf (" "); Console.WriteLine ("\tLast accessed on " + str.Substring (0, index) + " at " + str.Substring (index + 1)); str = written.ToString(); index = str.IndexOf (" "); Console.WriteLine ("\tLast written on " + str.Substring (0, index) + " at " + str.Substring (index + 1)); } }
}
</source>
Uses methods in the File class to check whether a file exists
<source lang="csharp"> /* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794
- /
// Exists.cs -- Uses methods in the File class to dheck whether a file exists. // If it exists, it then opens and reads the file to the console. // // Compile this program with the following command line // C:>csc Exists.cs using System; using System.IO; namespace nsStreams {
public class Exists { static public void Main (string [] args) { if (args.Length == 0) { Console.WriteLine ("Please enter a file name"); return; } if (!File.Exists (args[0])) { Console.WriteLine (args[0] + " does not exist"); return; } StreamReader reader; try { reader = File.OpenText (args[0]); } catch (Exception e) { Console.WriteLine (e.Message); Console.WriteLine ("Cannot open " + args[0]); return; } while (reader.Peek() >= 0) { Console.WriteLine (reader.ReadLine ()); } reader.Close (); } }
}
</source>