public int FindFiles(String filename, ArrayList files, DokanFileInfo info) { string path = GetPath(filename); if (Directory.Exists(path)) { DirectoryInfo d = new DirectoryInfo(path); FileSystemInfo[] entries = d.GetFileSystemInfos(); foreach (FileSystemInfo f in entries) { FileInformation fi = new FileInformation(); fi.Attributes = f.Attributes; fi.CreationTime = f.CreationTime; fi.LastAccessTime = f.LastAccessTime; fi.LastWriteTime = f.LastWriteTime; fi.Length = (f is DirectoryInfo) ? 0 : ((FileInfo)f).Length; fi.FileName = f.Name; files.Add(fi); } return 0; } else { return -1; } }
public int GetFileInformation(string filename, Dokan.FileInformation fileinfo, DokanFileInfo info) { WriteTrace("getfileinformation", filename); FileReferences fileReference = files.Value.GetFolderReference(filename); string name = filename.Split(new [] { '\\' }, StringSplitOptions.RemoveEmptyEntries).LastOrDefault(); if (fileReference != null && (fileReference.Name ?? string.Empty) != (name ?? string.Empty)) { return(-DokanNet.ERROR_FILE_NOT_FOUND); } if (fileReference != null) { fileinfo.Attributes = fileReference.IsFolder() ? FileAttributes.Directory : FileAttributes.Normal; fileinfo.LastAccessTime = fileReference.Date ?? DateTime.Now; fileinfo.LastWriteTime = fileReference.Date ?? DateTime.Now; fileinfo.CreationTime = fileReference.Date ?? DateTime.Now; fileinfo.FileName = fileReference.Name; fileinfo.Length = fileReference.Size; return(DokanNet.DOKAN_SUCCESS); } return(-DokanNet.ERROR_FILE_NOT_FOUND); }
public static void CloneTo(this FileInformation that, ref FileInformation target) { target.Attributes = that.Attributes; target.FileName = that.FileName; target.Length = that.Length; target.LastAccessTime = that.LastAccessTime; target.LastWriteTime = that.LastWriteTime; target.CreationTime = that.CreationTime; }
public static void UpdateFileInformation(this MongoGridFSFileInfo file, ref FileInformation dokanFileInformation) { dokanFileInformation.Length = file.Length; dokanFileInformation.CreationTime = file.UploadDate; dokanFileInformation.Attributes = FileAttributes.ReadOnly; dokanFileInformation.LastAccessTime = DateTime.Now; dokanFileInformation.LastWriteTime = DateTime.Now; dokanFileInformation.FileName = Path.GetFileName(file.Name); }
int DokanOperations.GetFileInformation(string filename, FileInformation fileinfo, DokanFileInfo info) { VFileInfo vinfo; int status = data.GetFileInformation (filename, out vinfo); fileinfo.Attributes = vinfo.Attributes; fileinfo.CreationTime = vinfo.CreationTime; fileinfo.LastAccessTime = vinfo.LastAccessTime; fileinfo.LastWriteTime = vinfo.LastWriteTime; fileinfo.Length = vinfo.Length; return status; }
public int GetFileInformation(string filename, Dokan.FileInformation fileinfo, Dokan.DokanFileInfo info) { NotImplemented(filename, info.Context); try { var FileSystemEntry = FileSystem.GetFileInfo(filename); FillFileInformationFromFileSystemEntry(fileinfo, FileSystemEntry); return(0); } catch (Exception) { return(-1); //return 0; } }
public int FindFiles(string filename, ArrayList files, DokanFileInfo info) { if (!mItems.ContainsKey(filename)) return -1; var dir = mItems[filename] as Zpl.ZfsDirectory; if (dir == null) return -1; foreach (var item in dir.GetChildren().Where(FilterItem)) { FileInformation finfo = new FileInformation(); finfo.FileName = item.Name; SetAttributes(item, finfo); files.Add(finfo); } return 0; }
//========================================================================== // ファイル情報 //========================================================================== private void CopyFileInfo(Dokan.FileInformation info, jsch::SftpATTRS r_attr) { info.Length = r_attr.getSize(); info.CreationTime = Unix.UnixTime.UnixTimeToDateTime(r_attr.getMTime()); info.LastAccessTime = Unix.UnixTime.UnixTimeToDateTime(r_attr.getATime()); info.LastWriteTime = Unix.UnixTime.UnixTimeToDateTime(r_attr.getMTime()); // attributes info.Attributes = r_attr.isDir()?System.IO.FileAttributes.Directory: System.IO.FileAttributes.Normal; if (this.account.ReadOnly && !r_attr.isDir()) { info.Attributes |= System.IO.FileAttributes.ReadOnly; } if (account.Offline) { info.Attributes |= System.IO.FileAttributes.Offline; } if (info.FileName.Length > 0 && info.FileName[0] == '.') { info.Attributes |= System.IO.FileAttributes.Hidden; } }
public int FindFiles( String filename, ArrayList files, DokanFileInfo info) { Debug("FindFiles {0}", filename); try { string path = GetPath(filename); ArrayList entries = (ArrayList)GetChannel().ls(path); foreach (ChannelSftp.LsEntry entry in entries) { FileInformation fi = new FileInformation(); fi.Attributes = entry.getAttrs().isDir() ? FileAttributes.Directory : FileAttributes.Normal; if (DokanSSHFS.UseOffline) fi.Attributes |= FileAttributes.Offline; DateTime org = new DateTime(1970, 1, 1, 0, 0, 0, 0); fi.CreationTime = org.AddSeconds(entry.getAttrs().getMTime()); fi.LastAccessTime = org.AddSeconds(entry.getAttrs().getATime()); fi.LastWriteTime = org.AddSeconds(entry.getAttrs().getMTime()); fi.Length = entry.getAttrs().getSize(); //fi.FileName = System.Text.Encoding.UTF8.GetString(entry.getFilename().getBytes()); fi.FileName = entry.getFilename(); if (fi.FileName.StartsWith(".")) { fi.Attributes |= FileAttributes.Hidden; } files.Add(fi); } return 0; } catch (SftpException) { return -1; } catch (Exception e) { connectionError_ = true; Debug(e.ToString()); Reconnect(); return -1; } }
public int GetFileInformation(string filename, FileInformation fileinfo, DokanFileInfo info) { RaiseMethodCall("GetFileInformation " + filename); if (cachedDirectoryFileInformation.ContainsKey(filename)) { var cachedFileInfo = cachedDirectoryFileInformation[filename]; fileinfo.FileName = cachedFileInfo.FileName; fileinfo.CreationTime = cachedFileInfo.CreationTime; fileinfo.LastAccessTime = cachedFileInfo.LastAccessTime; fileinfo.LastWriteTime = cachedFileInfo.LastWriteTime; fileinfo.Length = cachedFileInfo.Length; fileinfo.Attributes = cachedFileInfo.Attributes; return 0; } else { RaiseDebug("GetFileInformation not cached: " + filename); return -DokanNet.ERROR_FILE_NOT_FOUND; } }
public int FindFiles(String filename, ArrayList files, DokanFileInfo info) { string path = GetPath(filename); if (Directory.Exists(path)) { DirectoryInfo d = new DirectoryInfo(path); FileSystemInfo[] entries = d.GetFileSystemInfos(); foreach (FileSystemInfo f in entries) { if (f.Name == settingsFile) { continue; } FileInformation fi = new FileInformation(); fi.Attributes = f.Attributes; fi.CreationTime = f.CreationTime; fi.LastAccessTime = f.LastAccessTime; fi.LastWriteTime = f.LastWriteTime; fi.Length = (f is DirectoryInfo) ? 0 : ((FileInfo)f).Length; fi.FileName = f.Name; files.Add(fi); } return DokanNet.DOKAN_SUCCESS; } return DokanNet.DOKAN_ERROR; }
public int FindFiles(string filename, System.Collections.ArrayList files, DokanFileInfo info) { try { // logger.addLog("FindFiles '" + filename + "'"); if (mergedDirs.ContainsDirectory(filename)) { List<FileSystemInfo> entries = mergedDirs.getFileSystemInfos(filename); foreach (FileSystemInfo f in entries) { FileInformation fi = new FileInformation(); fi.Attributes = f.Attributes; fi.CreationTime = f.CreationTime; fi.LastAccessTime = f.LastAccessTime; fi.LastWriteTime = f.LastWriteTime; fi.Length = (f is DirectoryInfo) ? 0 : ((FileInfo)f).Length; fi.FileName = f.Name; //fi.Attributes.HasFlag(FileAttributes.ReadOnly); files.Add(fi); } return 0; } else { return -1; } } catch (Exception e) { Console.WriteLine("Caught an exception: " + e + ": " + e.Message); return -1; } }
// GetFileInformation returns information about a container at the top level, blob prefixes at lower levels, // and empty directories (tracked in memory). File times are all specified as `DateTime.UtcNow`. public int GetFileInformation(string filename, FileInformation fileinfo, DokanFileInfo info) { var split = filename.Split(new[] { Path.DirectorySeparatorChar }, StringSplitOptions.RemoveEmptyEntries); if (split.Length == 0) { fileinfo.Attributes = FileAttributes.Directory; fileinfo.CreationTime = DateTime.UtcNow; fileinfo.LastAccessTime = DateTime.UtcNow; fileinfo.LastWriteTime = DateTime.UtcNow; return 0; } if (split.Length == 1) { var container = blobs.ListContainers(split[0]).FirstOrDefault(); if (container != null && container.Name == split[0]) { fileinfo.Attributes = FileAttributes.Directory; fileinfo.CreationTime = DateTime.UtcNow; fileinfo.LastAccessTime = DateTime.UtcNow; fileinfo.LastWriteTime = DateTime.UtcNow; return 0; } else { return -1; } } var blob = blobs.GetBlobReference(filename.Trim('\\')); try { blob.FetchAttributes(); fileinfo.CreationTime = blob.Properties.LastModifiedUtc; fileinfo.LastWriteTime = blob.Properties.LastModifiedUtc; fileinfo.LastAccessTime = DateTime.UtcNow; fileinfo.Length = blob.Properties.Length; return 0; } catch { if (emptyDirectories.Contains(filename) || blobs.ListBlobsWithPrefix(filename.Trim('\\').Replace('\\', '/')).Any()) { fileinfo.Attributes = FileAttributes.Directory; fileinfo.CreationTime = DateTime.UtcNow; fileinfo.LastAccessTime = DateTime.UtcNow; fileinfo.LastWriteTime = DateTime.UtcNow; return 0; } else { return -DokanNet.ERROR_FILE_NOT_FOUND; } } }
public int GetFileInformation(string filename, FileInformation fileinfo, DokanFileInfo info) { CacheEntry entry = cache_.Lookup(filename); int ret = 0; if (entry.GetFileInfoRet == int.MaxValue) { ret = ope_.GetFileInformation(filename, fileinfo, info); entry.GetFileInfoRet = ret; entry.GetFileInfoValue = fileinfo; } else { FileInformation finfo = entry.GetFileInfoValue; fileinfo.Attributes = finfo.Attributes; fileinfo.CreationTime = finfo.CreationTime; fileinfo.FileName = finfo.FileName; fileinfo.LastAccessTime = finfo.LastAccessTime; fileinfo.LastWriteTime = finfo.LastWriteTime; fileinfo.Length = finfo.Length; ret = entry.GetFileInfoRet; } return ret; }
public int FindFiles( string filename, System.Collections.ArrayList files, DokanFileInfo info) { if (filename == "\\") { foreach (string name in TopDirectory.Keys) { FileInformation finfo = new FileInformation(); finfo.FileName = name; finfo.Attributes = System.IO.FileAttributes.Directory; finfo.LastAccessTime = DateTime.Now; finfo.LastWriteTime = DateTime.Now; finfo.CreationTime = DateTime.Now; files.Add(finfo); } return 0; } else { RegistryKey key = GetRegistoryEntry(filename); if (key == null) return -1; foreach (string name in key.GetSubKeyNames()) { FileInformation finfo = new FileInformation(); finfo.FileName = name; finfo.Attributes = System.IO.FileAttributes.Directory; finfo.LastAccessTime = DateTime.Now; finfo.LastWriteTime = DateTime.Now; finfo.CreationTime = DateTime.Now; files.Add(finfo); } foreach (string name in key.GetValueNames()) { FileInformation finfo = new FileInformation(); finfo.FileName = name; finfo.Attributes = System.IO.FileAttributes.Normal; finfo.LastAccessTime = DateTime.Now; finfo.LastWriteTime = DateTime.Now; finfo.CreationTime = DateTime.Now; files.Add(finfo); } return 0; } }
public int GetFileInformation( String filename, FileInformation fileinfo, DokanFileInfo info) { try { string path = GetPath(filename); SftpATTRS attr = GetChannel().stat(path); fileinfo.Attributes = attr.isDir() ? FileAttributes.Directory : FileAttributes.Normal; if (DokanSSHFS.UseOffline) fileinfo.Attributes |= FileAttributes.Offline; DateTime org = new DateTime(1970, 1, 1, 0, 0, 0, 0); fileinfo.CreationTime = org.AddSeconds(attr.getMTime()); fileinfo.LastAccessTime = org.AddSeconds(attr.getATime()); fileinfo.LastWriteTime = org.AddSeconds(attr.getMTime()); fileinfo.Length = attr.getSize(); return 0; } catch (SftpException) { return -1; } catch (Exception e) { connectionError_ = true; Debug(e.ToString()); Reconnect(); return -1; } }
// find apis public int FindFiles(string filename, System.Collections.ArrayList files, DokanFileInfo info) { FlacFsObjectInfo[] entries = flacFs_.ListDirectoryContents(filename); if (entries == null) { return -1; } foreach(FlacFsObjectInfo fsoi in entries) { FileInformation fi = new FileInformation(); TranslateFileSystemInfo(fsoi, fi); files.Add(fi); } return 0; }
private static void TranslateFileSystemInfo(FlacFsObjectInfo fsoi, FileInformation fi) { fi.Attributes = fsoi.Attributes; fi.CreationTime = fsoi.CreationTime; fi.LastAccessTime = fsoi.LastAccessTime; fi.LastWriteTime = fsoi.LastWriteTime; fi.Length = fsoi.Length; fi.FileName = fsoi.Name; }
public int GetFileInformation(string filename, FileInformation fileinfo, DokanFileInfo info) { FlacFsObjectInfo fsoi = flacFs_.GetFsObjectInfo(filename); if (fsoi == null) { return -1; } else { TranslateFileSystemInfo(fsoi, fileinfo); return 0; } }
public int GetFileInformation(String filename, FileInformation fileinfo, DokanFileInfo info) { Debug.WriteLine("FileInf {0} {1}", filename, info.Context); try { Metadata data = info.Context as Metadata; fileinfo.Attributes = data.is_dir ? FileAttributes.Directory : FileAttributes.Normal; if (data.modified != "") { fileinfo.LastWriteTime = DateTime.Parse(data.modified); } else { fileinfo.LastWriteTime = DateTime.Today; } fileinfo.CreationTime = fileinfo.LastWriteTime; fileinfo.LastAccessTime = fileinfo.LastWriteTime; fileinfo.Length = (long)data.bytes; return 0; } catch (NotFoundException) { return -DokanNet.ERROR_PATH_NOT_FOUND; } }
public int GetFileInformation( string filename, FileInformation fileinfo, DokanFileInfo info) { if (filename == "\\") { fileinfo.Attributes = System.IO.FileAttributes.Directory; fileinfo.LastAccessTime = DateTime.Now; fileinfo.LastWriteTime = DateTime.Now; fileinfo.CreationTime = DateTime.Now; return 0; } RegistryKey key = GetRegistoryEntry(filename); if (key == null) return -1; fileinfo.Attributes = System.IO.FileAttributes.Directory; fileinfo.LastAccessTime = DateTime.Now; fileinfo.LastWriteTime = DateTime.Now; fileinfo.CreationTime = DateTime.Now; return 0; }
public int FindFiles(string filename, System.Collections.ArrayList files, DokanFileInfo info) { string webFilename = Normalize(filename); if (!memfs.Exists(webFilename)) { //Need to improve this, if it wasn't found check in the internet try { FillList(webFilename); if (!memfs.Exists(webFilename)) { return -DokanNet.ERROR_PATH_NOT_FOUND; } } catch { return -DokanNet.ERROR_PATH_NOT_FOUND; } return -DokanNet.ERROR_PATH_NOT_FOUND; } MemFile parent = memfs.Lookup(webFilename); if (!parent.Listed) { FillList(webFilename); } if (parent.LastAccessed.AddMilliseconds(CacheMillis) < DateTime.Now) { FillList(webFilename); } ICollection<MemFile> memFiles = memfs.List(webFilename); foreach(MemFile mf in memFiles) { FileInformation fi = new FileInformation(); fi.FileName = mf.Name; fi.Length = mf.Length; fi.CreationTime = mf.DateCreated; fi.LastAccessTime = mf.LastAccessed; fi.LastWriteTime = mf.LastUpdated; if (mf.Type == WebdavClient.DAVType.File) { fi.Attributes = FileAttributes.Normal; } else { fi.Attributes = FileAttributes.Directory; } files.Add(fi); } return 0; }
private bool mergeDirectoryListing(string path, ArrayList fileArrList) { bool found = false; KeyedCollectionImpl<string, FileInformation> directoryItems = new KeyedCollectionImpl<string, FileInformation>(delegate(FileInformation itemInfo) { return itemInfo.FileName; }); Trace.TraceInformation(String.Format("Creating merged directory listing for " + path)); foreach (Member m in this.members) { if(m.GetFileSystemObjectKind(path) != FileSystemObjectKind.Directory) { continue; } string realPath = m.GetRootedPath(path); found = true; foreach (FileSystemInfo fsInfo in new DirectoryInfo(realPath).GetFileSystemInfos()) { FileInformation fi = new FileInformation(); fi.Attributes = fsInfo.Attributes; fi.CreationTime = fsInfo.CreationTime; fi.FileName = fsInfo.Name; fi.LastAccessTime = fsInfo.LastAccessTime; fi.LastWriteTime = fsInfo.LastWriteTime; if (fsInfo is FileInfo) { fi.Length = (fsInfo as FileInfo).Length; } else { fi.Length = 0; } if (!directoryItems.Contains(fi.FileName)) { directoryItems.Add(fi); Trace.TraceInformation(String.Format("Found object {0}, size {1} bytes", fi.FileName, fi.Length)); } } } foreach (FileInformation fi in directoryItems) { fileArrList.Add(fi); } return found; }
public int GetFileInformation(string filename, FileInformation fileinfo, DokanFileInfo info) { string webFilename = Normalize(filename); if(!memfs.Exists(webFilename)) { return -DokanNet.ERROR_PATH_NOT_FOUND; } MemFile mf = memfs.Lookup(webFilename); fileinfo.Length = mf.Length; fileinfo.CreationTime = mf.DateCreated; fileinfo.LastAccessTime = mf.LastAccessed; fileinfo.LastWriteTime = mf.LastUpdated; if (mf.Type == WebdavClient.DAVType.File) { fileinfo.Attributes = FileAttributes.Normal; } else { fileinfo.Attributes = FileAttributes.Directory; } return 0; }
public void RemoveGetFileInfoCache() { GetFileInfoRet = int.MaxValue; GetFileInfoValue = null; }
public int GetFileInformation(string filename, FileInformation fileinfo, DokanFileInfo info) { Trace.WriteLine(string.Format("GetFileInformation {0}", filename)); if (filename == @"\") { fileinfo.Attributes = FileAttributes.Directory; fileinfo.LastAccessTime = DateTime.Now; fileinfo.LastWriteTime = DateTime.Now; fileinfo.CreationTime = DateTime.Now; return 0; } var fileRef = Extensions.GetFileReference(root, filename.ToFileString()); if (fileRef.Exists()) { fileinfo.Length = fileRef.Properties.Length; fileinfo.LastAccessTime = fileRef.Properties.LastModified.Value.LocalDateTime; fileinfo.LastWriteTime = fileRef.Properties.LastModified.Value.LocalDateTime; fileinfo.CreationTime = fileRef.Properties.LastModified.Value.LocalDateTime; fileinfo.Attributes = FileAttributes.Normal; fileinfo.FileName = fileRef.Name; return 0; } else { var dirRef = Extensions.GetDirectoryReference(root, filename.ToFileString()); if (dirRef.Exists()) { fileinfo.Attributes = FileAttributes.Directory; fileinfo.LastAccessTime = DateTime.Now; fileinfo.LastWriteTime = DateTime.Now; fileinfo.CreationTime = DateTime.Now; fileinfo.FileName = filename; return 0; } } return -DokanNet.ERROR_FILE_NOT_FOUND; }
// OpenDirectory succeeds as long as the specified path is an empty directory (tracked in memory) // or a blob prefix containing blobs (discovered via GetFileInformation returning a success code with a directory). public int OpenDirectory(string filename, DokanFileInfo info) { if (emptyDirectories.Contains(filename)) return 0; var fileinfo = new FileInformation(); var status = GetFileInformation(filename, fileinfo, info); if ((status == 0) && (fileinfo.Attributes == FileAttributes.Directory)) return 0; return -DokanNet.ERROR_FILE_NOT_FOUND; }
public int GetFileInformation(string filename, FileInformation fileinfo, DokanFileInfo info) { throw new NotImplementedException(); }
public int GetFileInformation(string filename, FileInformation fileinfo, DokanFileInfo info) { Console.WriteLine("Get File Info"); try { // logger.addLog("GetFileInformation '" + filename + "'"); string path = mergedDirs.getRealPath(filename); if (File.Exists(path)) { FileInfo f = new FileInfo(path); fileinfo.Attributes = f.Attributes; fileinfo.CreationTime = f.CreationTime; fileinfo.LastAccessTime = f.LastAccessTime; fileinfo.LastWriteTime = f.LastWriteTime; fileinfo.Length = f.Length; return 0; } else if (Directory.Exists(path)) { DirectoryInfo f = new DirectoryInfo(path); fileinfo.Attributes = f.Attributes; fileinfo.CreationTime = f.CreationTime; fileinfo.LastAccessTime = f.LastAccessTime; fileinfo.LastWriteTime = f.LastWriteTime; fileinfo.Length = 0;// f.Length; return 0; } else { return -1; } } catch (Exception e) { Console.WriteLine("Caught an exception: " + e + ": " + e.Message); return -1; } }
public int GetFileInformation(string filename, FileInformation fileinfo, DokanFileInfo info) { Trace.TraceInformation("GetFileInformation: {0}", filename); filename = GetPath(filename); var file = _gridFs.FindOne(filename); if(file != null) { file.UpdateFileInformation(ref fileinfo); return 0; } var probablyDir = _gridFs.FindFileOrDir(filename); if (probablyDir != null) { probablyDir.CloneTo(ref fileinfo); return 0; } return -1; }
public int GetFileInformation(String filename, FileInformation fileinfo, DokanFileInfo info) { string path = GetPath(filename); if (File.Exists(path)) { FileInfo f = new FileInfo(path); fileinfo.Attributes = f.Attributes; fileinfo.CreationTime = f.CreationTime; fileinfo.LastAccessTime = f.LastAccessTime; fileinfo.LastWriteTime = f.LastWriteTime; fileinfo.Length = f.Length; return DokanNet.DOKAN_SUCCESS; } else if (Directory.Exists(path)) { DirectoryInfo f = new DirectoryInfo(path); fileinfo.Attributes = f.Attributes; fileinfo.CreationTime = f.CreationTime; fileinfo.LastAccessTime = f.LastAccessTime; fileinfo.LastWriteTime = f.LastWriteTime; fileinfo.Length = 0;// f.Length; return DokanNet.DOKAN_SUCCESS; } return DokanNet.DOKAN_ERROR; }
public void RemoveGetFileInfoCache() { GetFileInfoRet = int.MaxValue; GetFileInfoValue = null; }
public int GetFileInformationProxy( IntPtr rawFileName, ref BY_HANDLE_FILE_INFORMATION rawHandleFileInformation, ref DOKAN_FILE_INFO rawFileInfo) { try { string file = GetFileName(rawFileName); FileInformation fi = new FileInformation(); int ret = operations_.GetFileInformation(file, ref fi, GetFileInfo(ref rawFileInfo)); if (ret == 0) { rawHandleFileInformation.dwFileAttributes = (uint)fi.Attributes; rawHandleFileInformation.ftCreationTime.dwHighDateTime = (int)(fi.CreationTime.ToFileTime() >> 32); rawHandleFileInformation.ftCreationTime.dwLowDateTime = (int)(fi.CreationTime.ToFileTime() & 0xffffffff); rawHandleFileInformation.ftLastAccessTime.dwHighDateTime = (int)(fi.LastAccessTime.ToFileTime() >> 32); rawHandleFileInformation.ftLastAccessTime.dwLowDateTime = (int)(fi.LastAccessTime.ToFileTime() & 0xffffffff); rawHandleFileInformation.ftLastWriteTime.dwHighDateTime = (int)(fi.LastWriteTime.ToFileTime() >> 32); rawHandleFileInformation.ftLastWriteTime.dwLowDateTime = (int)(fi.LastWriteTime.ToFileTime() & 0xffffffff); rawHandleFileInformation.nFileSizeLow = (uint)(fi.Length & 0xffffffff); rawHandleFileInformation.nFileSizeHigh = (uint)(fi.Length >> 32); } return ret; } catch (Exception e) { Console.Error.WriteLine(e.ToString()); return -1; } }
public static FileInformation GetFileInformation(this MongoGridFSFileInfo that) { var finfo = new FileInformation(); that.UpdateFileInformation(ref finfo); return finfo; }