我需要检查是否可以将文件写入用户指向Python的目录.
有没有办法提前检查?我可能正在使用try .. catch这个目的,但我期待更好的东西,我可以提前检查.
我很抱歉,如果它是非常基本的或之前已经被问过(我用Google搜索但找不到简单而令人满意的解释).
我想知道是什么sys.stdin.fileno()?
我在代码中看到它并且不明白它的作用.这是实际的代码块,
fileno = sys.stdin.fileno()
if fileno is not None:
new_stdin = os.fdopen(os.dup(fileno))
Run Code Online (Sandbox Code Playgroud)
我刚刚print sys.stdin.fileno()在我的python命令行中执行它并返回0.
我也搜索了谷歌,这个(nullage.com)是我能找到的参考,但它也只是说,
fileno() - >整数"文件描述符".
这对于较低级别的文件接口是必需的,例如os.read().
那究竟是什么意思呢?
在我的docker文件中,我有以下命令:
USER gerrit
COPY gerrit-default-config /var/gerrit/etc/gerrit.config
Run Code Online (Sandbox Code Playgroud)
运行图像我看到文件访问号码是777.它是默认值吗?有没有办法在每次COPY之后更改访问权限而不是运行chmod?
RUN chmod 600 /var/gerrit/etc/gerrit.config
Run Code Online (Sandbox Code Playgroud) 我在我的Web应用程序中有一个ADO.NET Entity-Framework*.edmx文件.
当我在浏览器中浏览(当应用程序运行时)到edmx文件时,它不显示错误页面,就像浏览到*.cs或vb文件一样,它会打开edmx并向所有显示我的模型方案用户!
我怎么能避免这种情况.
我有一个应用程序正在查看旧数据的一些文件.为了确保我们不破坏好项目,我将文件复制到临时位置.我正在检查的一些目录是源代码目录,它们有.svn文件夹.我们使用Subversion来管理我们的代码.
一旦我搜索了所有文件,我想删除临时缓存.听起来很简单吧?
出于某种原因,我的所有.svn目录都不会从缓存中删除.他们崩溃了应用程序.
由于原因(太深入了这里),我必须使用临时文件夹,因此出于政治原因,"扫描原始文件"是不可能的.
我可以进入资源管理器并删除它们.没问题.没有警告.只是删除.但代码崩溃,"访问{file}被拒绝".我对这个问题的态度很有帮助,所以任何帮助都会受到赞赏.
虽然我为了你的理智而将函数简化为LITTLE,但代码REALLY就是这么简单.
List<string> tmpCacheManifest = new List<string>();
string oldRootPath = "C:\\some\\known\\directory\\";
string tempPath = "C:\\temp\\cache\\";
foreach (string file in ListOfFilesToScan)
{
string newFile = file.Replace(oldRootPath, tempPath);
// This works just fine.
File.Copy(file, newFile);
tmpCacheManifest.add(newFile);
}
// ... do some stuff to the cache to verify what I need.
// Okay.. I'm done.. Delete the cache.
foreach (string file in tmpCacheManifest)
{
// CRASH!
File.Delete(file);
}
Run Code Online (Sandbox Code Playgroud)
foreach (string file in ListOfFilesToScan)
{
string newFile = file.Replace(oldRootPath, tempPath); …Run Code Online (Sandbox Code Playgroud) 我有三个文件 - global.php, test.php,test1.php
Global.php
$filename;
$filename = "test";
Run Code Online (Sandbox Code Playgroud)
test.php的
$filename = "myfile.jpg";
echo $filename;
Run Code Online (Sandbox Code Playgroud)
test1.php
echo $filename;
我可以通过测试和test1文件读取此变量
include 'global.php';
现在我想设置$filenamein 的值test.php和我想读的相同值test1.php.
我尝试了会话变量,但由于两个不同的文件,我无法捕获变量.
怎么实现这个........
在此先感谢您的帮助.....
我想知道是否有一种方法可以保护图像或文件在未经过身份验证时被隐藏.
假设我的网站中有一个图像,只有在该用户通过身份验证时才能看到该图像.但问题是我可以复制网址或在新标签中打开图片.
http://siteis.com/media/uploaded_files/1421499811_82_Chrysanthemum.jpg
而且,即使我没有通过身份验证,我也可以通过访问该网址来查看该特定图像.所以,我的问题是,如何保护文件,以便只有经过身份验证的用户才会看到?
更新:
视图:
def pictures(request, user_id):
user = User.objects.get(id=user_id)
all = user.photo_set.all()
return render(request, 'pictures.html',{
'pictures': all
})
Run Code Online (Sandbox Code Playgroud)
楷模:
def get_upload_file_name(instance, filename):
return "uploaded_files/%s_%s" %(str(time()).replace('.','_'), filename)
class Photo(models.Model):
photo_privacy = models.CharField(max_length=1,choices=PRIVACY, default='F')
user = models.ForeignKey(User)
image = models.ImageField(upload_to=get_upload_file_name)
Run Code Online (Sandbox Code Playgroud)
设置:
if DEBUG:
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "myproject", "static", "static-only")
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "myproject", "static", "media")
STATICFILES_DIRS = (
os.path.join(os.path.dirname(BASE_DIR), "myproject", "static", "static"),
)
Run Code Online (Sandbox Code Playgroud)
更新:
模板:
{% if pictures %}
{% for photo in pictures %}
<img …Run Code Online (Sandbox Code Playgroud) 我的一个应用程序旨在读取(并且只读取)可能正在使用的文件.
但是,当读取已经打开的文件(例如Microsoft Word)时,此应用程序会抛出System.IO.IOException:
该进程无法访问文件'<filename here>',因为它正由另一个进程使用.
用于读取文件的代码是:
using (Stream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete))
{
// Do stuff here.
}
Run Code Online (Sandbox Code Playgroud)
当然,由于该文件已被使用,因此预计会出现此异常.
现在,如果我要求操作系统将文件复制到新位置,然后阅读它,它可以工作:
string tempFileName = Path.GetTempFileName();
File.Copy(fileName, tempFileName, true);
// ? We read the newly created file.
using (Stream stream = new FileStream(tempFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete))
{
// Do stuff here.
}
Run Code Online (Sandbox Code Playgroud)
什么是魔术File.Copy允许读取应用程序已经使用的文件,特别是如何使用这个魔术来读取文件而不制作临时副本?
我正在尝试为自动启动创建一个经理.它应该读取一个XML文件,然后以自定义延迟启动我的程序.例如:
<startup id="0">
<name>Realtek Audio Manager</name>
<process arguments="-s">C:\Program Files\Realtek\Audio\HDA\RtkNGUI64.exe</process>
<delay>5</delay>
</startup>
Run Code Online (Sandbox Code Playgroud)
这将C:\Program Files\...\RtkNGUI64.exe -s在5秒后运行指定的进程().
现在,有三个程序无法启动,给我一个System.ComponentModel.Win32Exception:"Das System kann die angegebene Datei nicht finden." ("系统无法找到指定的文件.")
但是XML被正确解析,我想要启动的文件位于我在XML文件中指定的位置.
该问题仅涉及这三个文件:
Intel HotkeysCmd - C:\ Windows\System32\hkcmd.exe
Intel GFX Tray - C:\ Windows\System32\igfxtray.exe
Intel Persistance - C:\ Windows\System32\igfxpers.exe
我认为问题来自文件的位置:它们都位于C:\ Windows\System32中,而所有其他工作程序都位于外部(C:\ Program Files,C:\ Program Files(x86) ,D:\ Program Files,%AppData%)
我是否必须为我的程序提供某种访问权限才能在C:\ Windows\System32中启动程序?我该怎么办?
如果没有,那么我在这些程序中出错的原因是什么?
编辑 - 我的代码:
delegate(object o)
{
var s = (Startup) o;
var p = new System.Diagnostics.Process
{
StartInfo =
new System.Diagnostics.ProcessStartInfo(s.Process, …Run Code Online (Sandbox Code Playgroud)