我对DriveInfo类有这个小问题。 我知道错误是特定于“IsReady”属性但我只是不知道如何定义它..
namespace Csp.Test.ConsoleApp
{
public class Program
{
public static void Main()
{
//Create the server object - You will need create a list of the server objects.
Server server = new Server();
//Get all drives information
List<DriveInfo> driveList = DriveInfo.GetDrives().ToList<DriveInfo>();
//Insert information of one server - You will need get information of all servers
server.ServerID = 0; //Here is necessery put PK key. I recommend doing the SQL server will automatically generate the PK.
server.ServerName = string.Concat("Server ", driveList.Count);
//Inserts information in the newServers object
for (int i = 0; i < driveList.Count; i++)
{
ServerDrive serverDrives = new ServerDrive();
//Put here all the information to obeject Server
serverDrives.DriveLabel = driveList[i].Name;
serverDrives.TotalSpace = driveList[i].TotalSize;
serverDrives.DriveLetter = driveList[i].VolumeLabel;
serverDrives.FreeSpace = driveList[i].TotalFreeSpace;
// server.ListServerDrives.Add(serverDrives);
server.ServerDrives.Add(serverDrives);
}
//Add the information to an SQL Database using Linq.
DataClasses1DataContext db = new DataClasses1DataContext(@"sqlserver");
// db.Servers.InsertAllOnSubmit(server);
db.Servers.InsertOnSubmit(server);
db.SubmitChanges();
}
非常感谢任何帮助。
答案 0 :(得分:3)
更改以下行:
List<DriveInfo> driveList = DriveInfo.GetDrives().Where(x=>x.IsReady).ToList();
请注意,如果驱动器状态在获取驱动器列表和查询DriveInfo之间发生变化,您仍然可以获得IOException,因此最好在访问DriveInfo时使用try-catch。