我经常看到一些名为'blabla.exe:Zone.Identifier'的文件使用Process Monitor监视I/O.
这些文件可以看到网络驱动器.
冒号是否与文件的扩展属性相关?
我们刚刚从本地存储所有文件到网络驱动器.问题是我的VS项目现在也存储在哪里.(还没有版本控制系统,正在研究它.)我知道我在过去听过这样做的问题,但从来没有听说过解决方法.有工作吗?
所以我的VS在本地安装.这些文件位于网络驱动器上.我怎样才能让它发挥作用?
编辑:我知道应该做什么,但是我现在可以使用创可贴修复此问题并维护网络驱动器吗?
编辑2:我确信我不理解某些事情,但Bob King有正确的想法.我将与领先的Web开发人员一起工作,当他回到办公室找出临时解决方案,直到我们得到某种版本控制设置.谢谢你的想法.
我有一个网络共享驱动器("\ serveur\folder"),我想复制文件.我可以使用特定用户("user"/"pass")在驱动器上写入.如何使用C#访问共享驱动写入权限?
我想以编程方式查明我的应用程序是否从网络驱动器运行.这样做最简单的方法是什么?它应该支持UNC路径(\\127.0.0.1\d$
)和映射的网络驱动器(Z :).
我需要使用批处理文件映射网络驱动器,但不想指定驱动器号.
批处理文件用作部署过程的一部分; 我调用批处理文件CruiseControl.Net
,批处理文件需要映射一个需要凭据进行身份验证的UNC路径.然后批处理文件调用RoboCopy
将网站从输出目录部署到目标(并排除某些文件和文件夹).最后,批处理删除网络驱动器.
问题是这不是可扩展的,当只有少数项目时它很好但我们现在有20个项目使用这种方法并且用尽了驱动器号来映射.我不想重复使用驱动器号,因为它们可能会发生冲突 - 这很糟糕.
这是批处理文件的示例:
@echo off
net use x: \\192.168.0.1\Share\wwwroot\MyProject /user:mydomain\myuser MyP455w0rd
robocopy.exe "W:\wwwroot\MyProject" x:\ *.* /E /XO /XD "App_Data/Search" "*.svn" /XF "sitefinity.log" "Thumbs.db" /NDL /NC /NP
net use x: /delete
Run Code Online (Sandbox Code Playgroud)
并格式化为可读性:
@echo off
net use x: \\192.168.0.1\Share\wwwroot\MyProject
/user:mydomain\myuser MyP455w0rd
robocopy.exe "W:\wwwroot\MyProject" x:\ *.* /E /XO /XD
"App_Data/Search" "*.svn" /XF "sitefinity.log" "Thumbs.db" /NDL /NC /NP
net use x: /delete
Run Code Online (Sandbox Code Playgroud) 我的软件处理文件的多个操作,现在我已经完成了使用System.IO
类编写相关函数.
我现在需要添加对网络驱动器的支持.使用映射非常有效(虽然Directory.GetFiles
有点低,我不知道为什么),但我现在希望能够直接处理诸如的路径\\192.168.0.10\Shared Folder\MyDrive
.有没有办法处理这种类型的路径,除了使用新生成的路径将驱动器安装到可用的驱动器号,然后卸载?
背景:我有一个应用程序必须从网络驱动器上的文件读取(Z :)
这在我的办公室域中很有用,但它不能在站点上工作(在不同的域中).据我所知,域用户和网络驱动器的设置方式相同,但我无法访问客户域中的用户等.
当我无法访问网络驱动器时,我想我需要一个用户令牌.这就是我对用户进行压制的方式:
[DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
public static extern bool LogonUser(String lpszUsername, String lpszDomain, String lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
Run Code Online (Sandbox Code Playgroud)
...
const string userName = "USER";
const string pass = "PASS";
const string domainName = "VALIDDOMAIN.local" //tried with valid domain name and with null, same result
const int LOGON32_PROVIDER_DEFAULT = 0;
const int LOGON32_LOGON_INTERACTIVE = 2;
IntPtr tokenHandle = new IntPtr(0);
bool returnValue = LogonUser(userName, domainName, pass,
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT,
ref tokenHandle); …
Run Code Online (Sandbox Code Playgroud) 我的任务是在C#中编写一个简单的命令行实用程序,它将监视服务器上的一个目录,该目录将由多个用户访问以复制/剪切/粘贴/查看数据.我使用FileSystemWatcher来做这个,但它缺少一些功能.
是否可以确定用户或至少从访问/修改文件的位置确定计算机名称?
(注意:这不一定是FileSystemWatcher,我正在寻找任何方法来做到这一点.)
我正在尝试创建一个脚本,我将在文件服务器中搜索非继承权限.因此,我遇到了文件名的260个字符限制.我看到的一个建议,我认为会有所帮助,有几次是创建一些非持久性PS驱动器,并且可以查询这些驱动程序.
问题是,当我使用Get-ChildItem
新PS驱动器时,它返回具有完整网络路径的对象而不使用我指定的名称.
# Cycle the folders
Get-ChildItem $rootPath -Directory | select -first 1 | ForEach-Object{
$target = $_
# Create a PS Drive for each sub directory and get all the folders
[void](New-PSDrive -Name $target.Name -PSProvider FileSystem $target.FullName)
# Get the file objects.
Get-ChildItem "$($target.Name):\" -Recurse
}
Run Code Online (Sandbox Code Playgroud)
我相信如果我用驱动器号创建了一些合适的持久性网络驱动器,我就不会遇到这个问题.
希望我只是没有错过它,但Technet for New-PSDrive并不是100%清楚这个场景.
我正在寻找一种方法来制作ps-drive并引用文件夹,同时返回相对于新驱动器名称的路径.考虑我制作的psdrive(G :)然后我的一个映射网络驱动器(M :)的输出.
PS M:\> Get-ChildItem G:\
Directory: \\server01\COMMON\Folder
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 6/18/2011 8:14 AM Folder 1 …
Run Code Online (Sandbox Code Playgroud) 有没有办法检查驱动器号是否代表共享驱动器/网络驱动器或python中的本地光盘?我想有一些Windows api函数给了我这些信息,但我找不到它.也许甚至已经在python中集成了一种方法?
我正在寻找的是具有这种或类似行为的东西:
someMagicMethod("C:\\") #outputs True 'is a local drive'
someMagicMethod("Z:\\") #outputs False 'is a shared drive'
Run Code Online (Sandbox Code Playgroud)
这对我也有帮助:
someMagicMethod2() #outputs list of shared drive letters
Run Code Online (Sandbox Code Playgroud) network-drive ×10
c# ×4
.net ×2
filesystems ×2
windows ×2
batch-file ×1
drive-letter ×1
file-io ×1
io ×1
powershell ×1
python ×1
smb ×1
vb.net ×1
winapi ×1