public int SetAllocationSize(string filename, long length, DokanFileInfo info) { int ret = DokanNet.DOKAN_SUCCESS; filename = CleanFileName(filename); try { Debug("SetEndOfFile {0}", filename); string Directory = MainForm.In.mNFS.GetDirectoryName(filename); string FileName = MainForm.In.mNFS.GetFileName(filename); string FullName = MainForm.In.mNFS.Combine(FileName, Directory); NFSLibrary.Protocols.Commons.NFSAttributes attr = MainForm.In.mNFS.GetItemAttributes(FullName); if (attr.Size < length) { MainForm.In.mNFS.SetFileSize(FullName, length); } } catch (Exception ex) { ret = DokanNet.DOKAN_ERROR; Debug("SetEndOfFile file {0} newfile {1} exception {2}", filename, ex.Message); } return(ret); }
NtStatus IDokanOperations.SetAllocationSize(string fileName, long length, DokanFileInfo info) { Debug("SetAllocationSize"); fileName = CleanFileName(fileName); try { Debug("SetEndOfFile {0}", fileName); string Directory = nfsClient.GetDirectoryName(fileName); string FileName = nfsClient.GetFileName(fileName); string FullName = nfsClient.Combine(FileName, Directory); NFSLibrary.Protocols.Commons.NFSAttributes attr = nfsClient.GetItemAttributes(FullName); if (attr.Size < length) { nfsClient.SetFileSize(FullName, length); } } catch (Exception ex) { Debug("SetEndOfFile file {0} newfile {1} exception {2}", fileName, ex.Message); return(Trace("SetAllocationSize", fileName, info, DokanResult.Error, length.ToString(CultureInfo.InvariantCulture))); } return(Trace("SetAllocationSize", fileName, info, DokanResult.Success, length.ToString(CultureInfo.InvariantCulture))); }
NtStatus IDokanOperations.GetFileInformation(string fileName, out FileInformation fileInfo, DokanFileInfo info) { fileName = CleanFileName(fileName); fileInfo = new FileInformation(); try { Debug("GetFileInformation {0}", fileName); string Directory = nfsClient.GetDirectoryName(fileName); string FileName = nfsClient.GetFileName(fileName); string FullPath = nfsClient.Combine(FileName, Directory); NFSLibrary.Protocols.Commons.NFSAttributes nfsAttributes = nfsClient.GetItemAttributes(FullPath); if (nfsAttributes == null) { return(Trace("GetFileInformation", fileName, info, DokanResult.Error)); } if (nfsAttributes.NFSType == NFSLibrary.Protocols.Commons.NFSItemTypes.NFDIR) { fileInfo.Attributes = System.IO.FileAttributes.Directory; } else { fileInfo.Attributes = System.IO.FileAttributes.Archive; } fileInfo.LastAccessTime = nfsAttributes.LastAccessedDateTime; fileInfo.LastWriteTime = nfsAttributes.ModifiedDateTime; fileInfo.CreationTime = nfsAttributes.CreateDateTime; fileInfo.Length = (long)nfsAttributes.Size; fileInfo.FileName = FileName; Debug("GetFileInformation {0},{1},{2}", fileInfo.FileName, fileInfo.Length, fileInfo.Attributes); } catch (Exception ex) { Debug("GetFileInformation file {0} exception {1}", fileName, ex.Message); return(Trace("GetFileInformation", fileName, info, DokanResult.Error)); } return(Trace("GetFileInformation", fileName, info, DokanResult.Success)); }
public int GetFileInformation(string filename, FileInformation fileinfo, DokanFileInfo info) { int ret = DokanNet.DOKAN_SUCCESS; filename = CleanFileName(filename); try { Debug("GetFileInformation {0}", filename); string Directory = MainForm.In.mNFS.GetDirectoryName(filename); string FileName = MainForm.In.mNFS.GetFileName(filename); string FullPath = MainForm.In.mNFS.Combine(FileName, Directory); NFSLibrary.Protocols.Commons.NFSAttributes nfsAttributes = MainForm.In.mNFS.GetItemAttributes(FullPath); if (nfsAttributes == null) { return(DokanNet.DOKAN_ERROR); } if (nfsAttributes.NFSType == NFSLibrary.Protocols.Commons.NFSItemTypes.NFDIR) { fileinfo.Attributes = System.IO.FileAttributes.Directory; } else { fileinfo.Attributes = System.IO.FileAttributes.Archive; } fileinfo.LastAccessTime = nfsAttributes.LastAccessedDateTime; fileinfo.LastWriteTime = nfsAttributes.ModifiedDateTime; fileinfo.CreationTime = nfsAttributes.CreateDateTime; fileinfo.Length = (long)nfsAttributes.Size; } catch (Exception ex) { ret = DokanNet.DOKAN_ERROR; Debug("GetFileInformation file {0} exception {1}", filename, ex.Message); } return(ret); }
private void showPermissionsToolStripMenuItem_Click(object sender, EventArgs e) { try { if (listViewRemote.SelectedItems != null) { ListViewItem lvi = listViewRemote.SelectedItems[0]; String SearchItem = nfsClient.Combine(lvi.Text, RemoteFolder); NFSLibrary.Protocols.Commons.NFSAttributes itemAttributes = nfsClient.GetItemAttributes(SearchItem); MessageBox.Show( String.Format("Mode: {0}{1}{2}", itemAttributes.Mode.UserAccess, itemAttributes.Mode.GroupAccess, itemAttributes.Mode.OtherAccess) ); } } catch (Exception ex) { MessageBox.Show(ex.ToString(), "NFS Client"); } }
NtStatus IDokanOperations.FindFiles(string fileName, out IList <FileInformation> files, DokanFileInfo info) { Debug("FindFiles"); fileName = CleanFileName(fileName); files = new List <FileInformation>(); try { Debug("FindFiles {0}", fileName); string Directory = nfsClient.GetDirectoryName(fileName); string FileName = nfsClient.GetFileName(fileName); string FullPath = nfsClient.Combine(FileName, Directory); foreach (string strItem in nfsClient.GetItemList(FullPath)) { Debug("Found: {0}", strItem); NFSLibrary.Protocols.Commons.NFSAttributes nfsAttributes = nfsClient.GetItemAttributes(nfsClient.Combine(strItem, FullPath)); if (nfsAttributes != null) { FileInformation fi = new FileInformation(); fi.Attributes = nfsAttributes.NFSType == NFSLibrary.Protocols.Commons.NFSItemTypes.NFDIR ? System.IO.FileAttributes.Directory : System.IO.FileAttributes.Normal; fi.CreationTime = nfsAttributes.CreateDateTime; fi.LastAccessTime = nfsAttributes.LastAccessedDateTime; fi.LastWriteTime = nfsAttributes.ModifiedDateTime; fi.Length = (long)nfsAttributes.Size; fi.FileName = strItem; files.Add(fi); } } } catch (Exception ex) { Debug("FindFiles file {0} exception {1}", fileName, ex.Message); return(Trace("FindFiles", fileName, info, DokanResult.Error)); } return(Trace("FindFiles", fileName, info, DokanResult.Success)); }
public int FindFiles(string filename, System.Collections.ArrayList files, DokanFileInfo info) { int ret = DokanNet.DOKAN_SUCCESS; filename = CleanFileName(filename); try { Debug("FindFiles {0}", filename); string Directory = MainForm.In.mNFS.GetDirectoryName(filename); string FileName = MainForm.In.mNFS.GetFileName(filename); string FullPath = MainForm.In.mNFS.Combine(FileName, Directory); foreach (string strItem in MainForm.In.mNFS.GetItemList(FullPath)) { NFSLibrary.Protocols.Commons.NFSAttributes nfsAttributes = MainForm.In.mNFS.GetItemAttributes(MainForm.In.mNFS.Combine(strItem, FullPath)); if (nfsAttributes != null) { FileInformation fi = new FileInformation(); fi.Attributes = nfsAttributes.NFSType == NFSLibrary.Protocols.Commons.NFSItemTypes.NFDIR ? System.IO.FileAttributes.Directory : System.IO.FileAttributes.Normal; fi.CreationTime = nfsAttributes.CreateDateTime; fi.LastAccessTime = nfsAttributes.LastAccessedDateTime; fi.LastWriteTime = nfsAttributes.ModifiedDateTime; fi.Length = (long)nfsAttributes.Size; fi.FileName = strItem; files.Add(fi); } } } catch (Exception ex) { ret = DokanNet.DOKAN_ERROR; Debug("FindFiles file {0} exception {1}", filename, ex.Message); } return(ret); }
void RefreshRemote() { listViewRemote.Items.Clear(); List <string> Items = nfsClient.GetItemList(RemoteFolder); Items = RemoveDuplicatesAndInvalid(Items); Items.Insert(0, ".."); List <ListViewItem> ItemsList = new List <ListViewItem>(); foreach (string Item in Items) { NFSLibrary.Protocols.Commons.NFSAttributes nfsAttribute = nfsClient.GetItemAttributes(nfsClient.Combine(Item, RemoteFolder)); if (nfsAttribute != null) { if (nfsAttribute.NFSType == NFSLibrary.Protocols.Commons.NFSItemTypes.NFDIR) { ListViewItem lvi = new ListViewItem(new string[] { Item, nfsAttribute.Size.ToString(), nfsAttribute.CreateDateTime.ToString() }); lvi.ImageIndex = 1; ItemsList.Add(lvi); } else if (nfsAttribute.NFSType == NFSLibrary.Protocols.Commons.NFSItemTypes.NFREG) { ListViewItem lvi = new ListViewItem(new string[] { Item, nfsAttribute.Size.ToString(), nfsAttribute.CreateDateTime.ToString(), nfsAttribute.ModifiedDateTime.ToString(), nfsAttribute.LastAccessedDateTime.ToString() }); if (Item == "..") { continue; } lvi.ImageIndex = 0; ItemsList.Add(lvi); } } else { ListViewItem lvi = new ListViewItem(new string[] { Item, "", "" }); lvi.ImageIndex = 0; ItemsList.Add(lvi); } } List <ListViewItem> OrderedList = new List <ListViewItem>(); foreach (ListViewItem lvi in ItemsList) { if (lvi.Text == "..") { if (!OrderedList.Contains(lvi)) { OrderedList.Add(lvi); } break; } } foreach (ListViewItem lvi in ItemsList) { if (lvi.ImageIndex == 1 && lvi.Text != "..") { if (!OrderedList.Contains(lvi)) { OrderedList.Add(lvi); } } } foreach (ListViewItem lvi in ItemsList) { if (lvi.ImageIndex == 0) { if (!OrderedList.Contains(lvi)) { OrderedList.Add(lvi); } } } listViewRemote.Items.AddRange(OrderedList.ToArray()); }