有没有办法检查驱动器号是否代表共享驱动器/网络驱动器或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) 用户具有读取共享的适当权限,并且共享映射正确.这个问题似乎只发生在PowerShell v2.0中.
如果删除所有映射的驱动器,请重新映射一个驱动器,然后运行Test-Path:
net use /delete * /y
net use G: \\somefileserver\share
Test-Path G:\
Run Code Online (Sandbox Code Playgroud)
Test-Path返回False,即使驱动器已清晰映射,我也可以通过Windows资源管理器访问它.
如果我关闭PowerShell会话并打开一个新会话,Test-Path将返回True,就像它应该的那样.关于(A)的任何想法:可能导致这种情况的原因,以及如何使其正常工作?或(B):除了Test-Path之外,还有另一种方法可以测试网络驱动器的存在吗?我正在尝试编写一个登录脚本来映射用户的网络驱动器,这种行为让我感到疯狂.
首先,对缺乏可重复的示例表示道歉,但我无法真正提供一个,因为我认为问题在于我的网络设置.请将此问题视为调试问题的求助电话...
在RStudio中打开一个项目,存储在网络驱动器上并运行第一条指令(即它是一个包加载甚至a <- 1
),我在控制台中看到一个非常奇怪的输出:
> a <- 1
Warning message:
In dir.create(tempPath, recursive = TRUE) :
cannot create dir 'F:\Marketing', reason 'Permission denied'
Run Code Online (Sandbox Code Playgroud)
我在用户环境变量(TEMP,TMP,TMPDIR)中设置了所有可能的临时目录,并Sys.getenv()
正确打印它们.
"F:\ Marketing"是我的网络驱动器上的有效路径,它是项目的根目录.
我曾尝试debugonce(dir.create)
在.RProfile中查看tempPath是什么,但不幸的是,这导致了"无效'envir'参数"错误.
将项目复制到本地驱动器后,问题就消失了,所以这显然是网络驱动器/网络设置问题,但我不知道在哪里挖掘更多和我的IT部门.在这里真的没用......
任何想法如何调试此警告?
我使用python来填充一个表,其中包含许多存储文件的文件路径.但是,该路径需要具有完整的网络驱动器计算机名称,而不仅仅是驱动器号,即
//计算机名/文件夹/子文件夹/文件
不
病人:/文件夹/子文件夹/文件
我已经使用win32api,win32file和os.path模块进行了调查,但没有任何东西看起来像它能够做到这一点.我需要类似win32api.GetComputerName()
的功能,但能够将已知的驱动器号作为参数放入,并返回映射到该字母的计算机名称.
那么在python中是否有查找驱动器号并取回计算机名称?
这是我和朋友遇到的一个奇怪的问题.我们将我们的网站定位在网络驱动器上并试图从那里打开它.所有其他浏览器渲染这个页面就好了但IE(顺便说一句.为什么它总是IE?:))无法理解内联块语句.但是,如果我将我们的文件复制到本地驱动器没有问题,IE会像其他浏览器一样呈现所有内容.我用IE7-9b测试了这个.
从我的Delphi程序写入Windows 7中的映射网络驱动器(P :)时遇到一些问题.例如,当我尝试时,ForceDirectories('P:\test\folder')
我收到错误(找不到路径).
我尝试在代码(ForceDirectories('\\computername\share\test\folder')
)中键入UNC路径并且可以正常工作.但是,ExpandUNCFileName('P:\')
似乎没有用; 它返回'P:\'.在Windows XP上,ExpandUNCFileName('P:\')
返回UNC路径.
如何在Windows 7上获取Delphi中的UNC路径,或以其他方式写入映射的网络驱动器?
经过进一步调查,就好像我在Windows中缺少某种初始化.我有另一个使用TcxShellComboBox
(一个DevExpress组件)的应用程序(app2 ).导航到P:在组合框中,在app2中,调用ExpandUNCFileName
在第一个应用程序中正常工作.与FileExists
P:下的on文件相同,在app2中导航到P:之前返回False,在计算机重启之后返回true.
我在前一天在我的网络驱动器(其中一个)上设置的SVN存储库中提交/更新提交时遇到了麻烦.
我是指使用url的存储库:
file://mynetworkdrive/Documents/subversion/code/sln/trunk/MyWebsite/trunk/Home
Run Code Online (Sandbox Code Playgroud)
当我从VS 2010的Solution上下文菜单中选择Update或Commit选项时,我会看到一个对话框窗口,显示如下所示的异常:
SharpSvn.SvnRepositoryIOException: Commit failed (details follow): ---> SharpSvn.SvnRepositoryIOException: Unable to connect to a repository at URL 'file://mynetworkdrive/Documents/subversion/code/sln/trunk/MyWebsite/trunk/Home' ---> SharpSvn.SvnRepositoryIOException: Unable to open an ra_local session to URL ---> SharpSvn.SvnRepositoryIOException: Unable to open repository 'file://mynetworkdrive/Documents/subversion/code/sln/trunk/MyWebsite/trunk/Home' ---> SharpSvn.SvnSystemException: Can't open file '\\mynetworkdrive\Documents\subversion\code\sln\trunk\MyWebsite\trunk\Home\format': Logon failure: unknown user name or bad password.
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
--- End …
Run Code Online (Sandbox Code Playgroud) 我想使用本地驱动器号访问网络中的共享文件夹.(例如.\\ shared_drive \文件夹为Z :)
我可以使用"我的电脑"窗口中的"地图驱动器"选项来执行此操作.
但是有没有命令在Windows 7或更高版本中映射网络驱动器?
我想向在Windows(主要是 Windows 7)下运行的用C#编写的软件添加用户友好的文件锁定。我已经通过在相应的进程中保持正在使用的文件“打开”来实现文件锁定部分。我现在仍然想添加的是对当前打开/锁定文件的用户的识别。
正在访问的文件位于映射的网络驱动器上,由不同计算机上的不同用户使用。当文件被锁定并且第二个人尝试打开该文件时,他应该会看到一个对话框,类似于 Microsoft Office 程序中的“文件正在使用”对话框。那里还显示当前正在编辑文件的用户的名称。
我找到了找出打开某个文件的进程的解决方案(使用这个:How do I find out that process islocking a file using .NET?),我还能够读取打开某个文件的用户的名称从中创建了这个过程。但是,当在网络驱动器上打开锁定的文件时,通过这样做生成的用户名始终是我自己的用户名,而不是锁定文件的用户的用户名。
有谁知道如何实现这一目标?我的意思是,Microsoft Office 也可以在我的同一台电脑上以相同的用户权限执行此操作。我只是想知道如何...
干杯!
考虑以下简单的Haskell程序,该程序将文件作为字节串读取并tmp.tmp
从该字节串写入文件:
module Main
where
import System.Environment
import qualified Data.ByteString.Lazy as B
main :: IO ()
main = do
[file] <- getArgs
bs <- B.readFile file
action <- B.writeFile "tmp.tmp" bs
putStrLn "done"
Run Code Online (Sandbox Code Playgroud)
它被编译为名为的可执行文件tmptmp
.
我的计算机上有两个硬盘驱动器:C
驱动器和U
驱动器,这个是网络驱动器,此网络驱动器处于脱机状态.
现在,让我们试试吧tmptmp
.
当我运行它时C
,没有问题; 我在下面运行两次,第一次打开文件,C
第二次打开文件U
:
C:\HaskellProjects\imagelength> tmptmp LICENSE
done
C:\HaskellProjects\imagelength> tmptmp U:\Data\ztemp\test.xlsx
done
Run Code Online (Sandbox Code Playgroud)
现在我U
用C
驱动器上的文件运行它,没问题:
U:\Data\ztemp> tmptmp C:\HaskellProjects\imagelength\LICENSE
done
Run Code Online (Sandbox Code Playgroud)
当我使用驱动器上的文件运行它U
U
时会发生此问题: …
network-drive ×10
windows-7 ×3
python ×2
windows ×2
ankhsvn ×1
c# ×1
commit ×1
css ×1
delphi ×1
delphi-2007 ×1
directory ×1
drive-letter ×1
file-locking ×1
haskell ×1
ms-word ×1
net-use ×1
powershell ×1
r ×1
rstudio ×1
unc ×1
winapi ×1