예제 #1
0
        void node2_NodeClick(object sender, EventArgs e)
        {
            if (lastselected == advTree1.SelectedNode)
            {
                return;
            }
            Node sndr = lastselected = advTree1.SelectedNode;

            sndr.Nodes.Clear();
            listView1.Items.Clear();
            FATXPartition part = (FATXPartition)sndr.Tag;

            listView1.Enabled = advTree1.Enabled = menuStrip1.Enabled = false;
            foreach (FATXFolderEntry x in part.Folders)
            {
                Node node2 = new Node();
                node2.Text       = x.Name;
                node2.Tag        = x;
                node2.NodeClick += new EventHandler(node_NodeClick);
                sndr.Nodes.Add(node2);
            }
            foreach (FATXPartition x in part.SubPartitions)
            {
                Node node2 = new Node();
                node2.Text       = x.PartitionName;
                node2.Tag        = x;
                node2.NodeClick += new EventHandler(node2_NodeClick);
                sndr.Nodes.Add(node2);
            }
            listView1.Items.Clear();
            foreach (FATXFileEntry x in part.Files)
            {
                listView1.Items.Add(GetItem(x));
            }
            advTree1.SelectedNode.Expand();
            listView1.Enabled = advTree1.Enabled = menuStrip1.Enabled = true;
        }
 /// <summary>
 /// Returns the amount of data in the last block
 /// </summary>
 public static int BlockRemainderFATX(this DJsIO y, FATXPartition xPartition)
 {
     if (y.IOType == DataType.Drive)
         return 0;
     if (y.Length == 0)
         return 0;
     return (int)(((y.Length - 1) % xPartition.xBlockSize) + 1);
 }
예제 #3
0
        private void listView1_DoubleClick(object sender, EventArgs e)
        {
            if (x1 != MouseButtons.Left || x2 != MouseButtons.Left)
            {
                return;
            }
            if (listView1.SelectedItems.Count != 1)
            {
                return;
            }
            listView1.Enabled = false;
            status            = "Reading Directory";
            ListViewItem selitem = listView1.SelectedItems[0];

            switch (selitem.ImageIndex)
            {
            case 0:
            {
                textBoxX1.Text += ((FATXPartition)selitem.Tag).PartitionName + "/";
                FATXPartition       x     = ((FATXPartition)selitem.Tag);
                List <ListViewItem> xlist = new List <ListViewItem>();
                foreach (FATXFolderEntry y in x.Folders)
                {
                    xlist.Add(GetItem(y.Name, 1, y));
                }
                foreach (FATXFileEntry y in x.Files)
                {
                    xlist.Add(GetItem(y.Name, 2, y));
                }
                for (int i = 0; i < x.SubPartitions.Length; i++)
                {
                    xlist.Add(GetItem(x.SubPartitions[i].PartitionName, 0, x.SubPartitions[i]));
                }
                listView1.Items.Clear();
                listView1.Items.AddRange(xlist.ToArray());
            }
            break;

            case 1:
            {
                LastFolder = ((FATXFolderEntry)selitem.Tag);
                FATXReadContents x = LastFolder.Read();
                if (x == null)
                {
                    break;
                }
                textBoxX1.Text += LastFolder.Name + "/";
                List <ListViewItem> xlist = new List <ListViewItem>();
                foreach (FATXFolderEntry y in x.Folders)
                {
                    xlist.Add(GetItem(y.Name, 1, y));
                }
                foreach (FATXFileEntry y in x.Files)
                {
                    xlist.Add(GetItem(y.Name, 2, y));
                }
                listView1.Items.Clear();
                listView1.Items.AddRange(xlist.ToArray());
            }
            break;

            default: break;
            }
            status            = "Idle";
            listView1.Enabled = true;
        }
 /// <summary>
 /// Returns the count of blocks this file contains
 /// </summary>
 public static uint BlockCountFATX(this DJsIO y, FATXPartition xPartition)
 {
     {
         if (y.IOType == DataType.Drive)
             return 0;
         if (y.Length == 0)
             return 0;
         return (uint)(((y.Length - 1) / xPartition.xBlockSize) + 1);
     }
     //throw x
 }